2017-05-13 Werner Lemberg * Version 2.8 released. ======================= Tag sources with `VER-2-8. * README: Updated. * src/*.1: Updated. * src/ftinspect.pro: Updated. 2017-05-11 Werner Lemberg * src/ftinspect.cpp: Don't include `cstdint', which is C++11. Right now, we still want to be able to compile with older C++ compilers. 2017-05-11 Philipp Kerling [ftinspect] Check glyph index before discarding sign. * src/ftinspect.cpp (Engine:glyphName, Engine::loadOutline): Do it. 2017-05-11 Philipp Kerling * src/ftinspect.cpp (GlyphPointNumbers::paint): Fix `ptIdx' type. 2017-05-11 Philipp Kerling [ftinspect] Mark float literals as float. * src/ftinspect.cpp (GlyphPointNumbers::paint): Do it. 2017-05-11 Philipp Kerling [ftinspect] Insert explicit casts where warranted. This avoids compiler warnings. * src/ftinspect.cpp (Engine::numberOfNamedInstances, Engine::glyphName, Engine::loadOutline, GlyphBitmap::GlyphBitmap, GlyphBitmap::paint, QGraphicsViewx::resizeEvent): Do it. 2017-05-11 Philipp Kerling [ftinspect] Replace old-style casts with C++ casts. * src/ftinspect.cpp (Engine::update, GlyphPointNumbers::paint): Do it. 2017-05-11 Philipp Kerling [ftinspect] Make color tables and settings more readable. * src/ftinspect.cpp (MainGUI::setGraphicsDefaults): Use Qt constants and `qRgba'. 2017-05-11 Philipp Kerling [ftinspect] Use symbolic constant for TrueType interpreter v40. v40 is implemented meanwhile. * src/ftinspect.cpp (Engine::Engine, MainGUI::setDefaults): Use `TT_INTERPRETER_VERSION_40'. 2017-05-11 Philipp Kerling [ftinspect] Remove unneeded explicit array sizes. * src/ftinspect.cpp (Engine::Engine): Do it. 2017-05-11 Philipp Kerling [ftinspect] Make `ftcFaceID' conversion safe. * src/ftinspect.cpp: Include `stdint.h'. (faceRequester): Implement it. 2017-05-11 Philipp Kerling [ftinspect] Synchronize dpi, target, pxlMode types with FreeType. * src/ftinspect.h (Engine): Make `dpi' unsigned int. Make `loadFlags' unsigned long. (GlyphBitmap): Use `FT_Pixel_Mode' for `pixelMode' and constructor. * src/ftinspect.c: Include `cstdint', `cmath', `limits', `stdexcept', needed by forthcoming commits. (Engine::update, GlyphBitmap::GlyphBitmap, MainGUI::drawGlyph): Updated. 2017-05-11 Philipp Kerling [ftinspect] Change freetype2 include path to system include path. This avoids warnings. * src/ftinspect.pro: Do it. 2017-05-11 Philipp Kerling [ftinspect] Remove `const_cast'. * src/ftinspect.cpp (GlyphBitmap::paint): `const_cast' is potentially dangerous and should only be used as a last resort. Here, the mutable data can just be accessed with `.bits()' instead. 2017-05-11 Werner Lemberg Fix clang warnings. * src/ftbench.c (main): Use cast. * src/ftview.c (N_LCD_IDXS): Cast to `int'. (usage, parse_cmdline): Updated. 2017-05-09 Alexei Podtelezhnikov [ftview] Report fractional ppem for scalable fonts. * src/ftview.c (write_header): Updated, ppem and errors consolidated. 2017-05-08 Alexei Podtelezhnikov * src/ftview.c (write_header): Revert due to segmentation fault. 2017-05-02 Werner Lemberg Remove `slight' auto-hinting mode. Add sub-pixel `light' mode. * src/ftcommon.h (LCD_MODE_SLIGHT): Replace with... (LCD_MODE_LIGHT_SUBPIXEL): ...this new enum value. * src/ftcommon.c (FTDemo_Update_Current_Flags, FTDemo_Glyph_To_Bitmap): Updated. (string_load): Handle `LCD_MODE_LIGHT_SUBPIXEL'. Make integer delta support actually work. (string_render_prepare): Support `LCD_MODE_LIGHT_SUBPIXEL'. * src/ftdiff.c (HintMode): Replace HINT_MODE_AUTOHINT_SLIGHT with HINT_MODE_AUTOHINT_LIGHT_SUBPIXEL. (render_mode_names, render_state_draw, event_help): Updated. * src/ftgrid.c (grid_status_draw_outline): Show fractional advance width. (event_lcd_mode_change, Process_Event): Updated. * src/ftstring.c (event_lcdmode_change): Updated. * src/ftview.c (lcd_modes): New array to map indices (as produced by key presses) to LCD modes; we omit LCD_MODE_LIGHT_SUBPIXEL, which doesn't make much sense within ftview. (N_LCD_IDXS): New macro. (status): Replace `lcd_mode' with `lcd_idx'. (event_help): Revert change from 2017-04-19. (Process_Event): Updated to use `lcd_modes' array. Remove references to LCD_MODE_LIGHT. (write_header, usage, parse_cmdline, main): Updated. * src/ftinspect.h (AntiAliasing): Remove `AntiAliasing_Slight'. * src/ftinspect.cpp (Engine::update, MainGUI::checkHinting, MainGUI::checkAutoHinting, MainGUI::checkAntiAliasing, MainGUI::createLayout): Updated. 2017-04-19 Werner Lemberg Support new `slight' auto-hinting mode. Note that currently only `ftdiff' shows what the new mode really can do – `ftview' uses integer advance values, which doesn't work well with the `slight' mode. * src/ftcommon.h (LCD_MODE_SLIGHT): New enumeration. * src/ftcommon.c (FTDemo_Update_Current_Flags, FTDemo_Glyph_To_Bitmap): Handle `LCD_MODE_SLIGHT'. * src/ftdiff.c (HintMode): Add `HINT_MODE_AUTOHINT_SLIGHT'. (render_mode_names): Updated. (render_state_draw): Handle `HINT_MODE_AUTOHINT_SLIGHT'. * src/ftgrid.c (event_lcd_mode_change): Handle `LCD_MODE_SLIGHT'. (Process_Event): Updated. * src/ftstring.c (event_lcdmode_change): Handle `LCD_MODE_SLIGHT'. * src/ftview.c (event_help): Updated; we now have keys A-H to directly select rendering modes. (Process_Event, write_header): Updated. * src/ftinspect.h (AntiAliasing): Add `AntiAliasing_Light'. * src/ftinspect.cpp (Engine::update): Handle `AntiAliasing_Light', update `AntiAliasing_Slight'. (MainGUI::checkHinting, MainGUI::checkAutoHinting, MainGUI::checkAntiAliasing, MainGUI::createLayout): Updated. 2014-04-19 Werner Lemberg [ftgrid] Fix out-of-array memory access. * src/ftgrid.c (bitmap_scale) [gr_pixel_mode_lcd]: We handle input pixel by pixel, not the full line; consequently, we have to use `width', not `pitch'. 2017-04-17 Alexei Podtelezhnikov * src/ftview.c (write_header): Report fractional ppem differently. To convince Werner. 2017-04-16 Alexei Podtelezhnikov * src/ftview.c (write_header): Report fractional ppem. 2017-04-16 Werner Lemberg * src/ftdump.c (Print_Charmaps): Better show synthetic cmaps. 2017-04-09 Werner Lemberg * src/ftmulti.c (Render_All, Render_Text): Round advance widths. Problem spotted by Nikolaus. 2017-03-30 Werner Lemberg * src/ftview.c (write_header): Show current instance index. 2017-03-29 Alexei Podtelezhnikov Use `LCD_MODE_XXX' enum values. * src/ftcommon.c (FTDemo_New, FTDemo_Update_Current_Flags, FTDemo_Glyph_To_Bitmap, FTDemo_Index_To_Bitmap): Ditto. * src/ftgrid.c (event_lcd_filter_change): Ditto. * src/ftstring.c (event_lcdmode_change): Ditto. 2017-03-29 Werner Lemberg * src/ftview.c (INIT_SIZE): Improve vertical start position. 2017-03-27 Alexei Podtelezhnikov [ftview] Stuff right margin. * src/ftview.c (X_TOO_LONG): Rely on `horiAdvance' when available. (Render_All): Use `FTDemo_Draw_Slot' so that updated X_TOO_LONG works. (Render_Stroke, Render_Fancy): Updated. 2017-03-26 Alexei Podtelezhnikov [ftview] Hide LCD filter from grayscale modes. * src/ftview.c (Process_Event, write_header): Check the LCD mode before adjusting or reporting the LCD filter. 2017-03-26 Alexei Podtelezhnikov [ftview, ftstring, ftgrid] Remove anti-aliasing toggle. * src/ftcommon.h (FTDemo_Handle): Replace `antialias' field with `LCD_MODE_MONO' enumerator. * src/ftcommon.c (FTDemo_Update_Current_Flags, FTDemo_Glyph_To_Bitmap, FTDemo_Index_To_Bitmap): Updated. * src/ftgrid.c (Process_Event, event_help, event_lcd_mode_change, event_lcd_filter_change): Ditto. * src/ftstring.c (Process_Event, event_help, event_lcdmode_change): Ditto. * src/ftview.c (Process_Event, event_help, write_header): Ditto. 2017-03-24 Alexei Podtelezhnikov * src/ftview.c (Render_*): Improve readability. 2017-03-24 Alexei Podtelezhnikov [ftview] Consolidate emboldening and slanting modes. * src/ftview.c (Render_Slanted, Render_Embolden): Merged into... (Render_Fancy): ... this new function. (event_help, Process_Event, write_header, main): Updated. * src/ftview.1: Updated. 2017-03-23 Alexei Podtelezhnikov * src/ftmulti.c (Process_Event, main): Use `FT_RoundFix'. 2017-03-23 Werner Lemberg * src/ftmulti.c (Process_Event, main): Fix rounding. 2017-03-23 Werner Lemberg [ftmulti] Show PS name. * src/ftmulti.c (Render_All): Adjust vertical start position. (Render_Text): Make arguments similar to `Render_All'. Adjust vertical start position. (Process_Event): Round non-integer axis values to two decimal digits. (main): Updated. Print PostScript name. 2017-03-20 Brian Nixon [ftview] Improve waterfall mode (#50586). * src/ftview.c (Render_Waterfall): Stop repeating of the default glyph to the end of each line after the display text. 2017-03-20 Brian Nixon * graph/win32/grwin32.c(syskey_translators): Fix F10 key (#50585). `F10' does not work as advertised in the demos because the message-handling code expects it to arrive as a `normal' key but Windows sends it as a `system' key (because it is reserved for activating the menu bar, per the IBM Common User Access standard). Fix this by adding `F10' to the ‛syskey_translators’ table. (We also remove the existing handling of `F1' as a `system' key, because this does not appear to be necessary. `F1' is sent as a `normal' key and is correctly handled by the ‛key_translators’ table.) 2017-03-19 Alexei Podtelezhnikov * src/ftbench.c (main, usage): Add optional LCD filtering. 2017-03-19 Brian Nixon [graph] Make demo windows minimise-able on Win32 (#50582). * graph/win32/grwin32.c (gr_win32_surface_init): Implement it. 2017-03-13 Werner Lemberg [ftdump] Show ID numbers for standard `name' table entries. * src/ftdump.c (EXPAND, XEXPAND, NAME_ID): New macros. (name_id): Use new macros. 2017-02-07 Alexei Podtelezhnikov * src/ftgamma.c (main): Label images. 2017-02-03 Alexei Podtelezhnikov [ftgamma] Add box-filtered subpixel pattern. Two alternative patterns now demonstrate the importance of correct gamma for both grayscale and subpixel anti-aliasing, where it helps normalize thickness in the former and remove color fringes in the latter. * src/ftgamma.*: Updated. 2017-01-28 Alexei Podtelezhnikov [ftstring] Improve gamma ramp appearance. * src/ftstring.c (event_gamma_change, gamma_ramp_draw): Updated. 2017-01-28 Werner Lemberg [ftdump] Always finalize FreeType. * src/ftdump.c (PanicZ, usage): Add `library' argument so that we can call `FT_Done_FreeType'. (main): Updated. 2017-01-28 Werner Lemberg [ftdump] Sync with current FreeType. * src/ftdump.c (name_id): Use updated ID macros. Add new ID macros. 2017-01-27 Alexei Podtelezhnikov [ftview] Align with current FreeType. * src/ftview.c (write_header): s/GB2312/PRC/. (Process_Event): `FT_Library_SetLcdFilterWeights' now enables filtering without `FT_Library_SetLcdFilter'. 2016-12-30 Werner Lemberg * Version 2.7.1 released. ========================= Tag sources with `VER-2-7-1'. * README: Updated. * src/*.1: Updated. * src/ftinspect.pro: Updated. 2016-12-27 Werner Lemberg [ftmulti] Minor. * src/ftmulti.c (Process_Event, main): If MM, round design coordinates. 2016-12-25 Werner Lemberg Fixes for clang++. * Makefile (COMPILE): Don't add `-std=c99' if using a C++ compiler. * src/ftbench.c (_GNU_SOURCE): Declare only if not already defined. * src/ftcommon.c (_GNU_SOURCE): Declare only if not already defined. (FTDemo_Install_Font): Use proper case for `FT_Select_Charmap'. * src/ftmulti.c (main): Use proper case for `FT_Select_Charmap'. 2016-12-20 Werner Lemberg * src/ftmulti.c: Minor clang fixes. 2016-12-19 Werner Lemberg [ftmulti] Support multiple engines. Similar to other programs, use the `H' key to cycle through engines (if available). * src/ftmulti.c: Include FT_FONT_FORMATS_H, FT_MODULE_H, FT_TRUETYPE_DRIVER_H, FT_CFF_DRIVER_H. (N_CFF_HINTING_ENGINES): New macro. (cff_hinting_engine, tt_interpreter_versions, num_tt_interpreter_versions, tt_interpreter_version_idx, font_format): New global variables. (Help): Updated. (cff_hinting_engine_change, tt_interpreter_version_change): New functions. (Process_Event): Handle key `H'. (main): Set up selection of CFF and TrueType engine versions. Display selected engine. Force redisplay of current font if `H' key was pressed. 2016-11-06 Werner Lemberg * src/ftbench.c (main): Adjust size argument for bitmap strikes. For bitmap-only fonts we enforce the selection of the first bitmap strike size. This commit also fixes the `size' value itself. 2016-10-29 Werner Lemberg Minor compilation issues. * Makefile: Use ANSIFLAGS and select C99 for GNU-like compilers. * src/ftbench.c, src/ftcommon.c (_GNU_SOURCE): Define. We use functionality not covered by ANSI. 2016-10-29 Werner Lemberg Fix clang warnings. We now have a new `FT_ENCODING_OTHER' tag used for internal purposes. Since it is not possible to extend an enumeration after its definition, replace `FT_Encoding' types with `unsigned long'. * src/ftcommon.c (FTDemo_Make_Encoding_Tag): Updated. * src/ftcommon.h (FTDemo_Handle): Ditto. * src/ftmulti.c (encoding): Use `unsigned long'. (main): Updated. * src/ftstring.c (Sample): Make array of type `const char*'. (status): Use `unsigned long' for `encoding' field. Use `const char*' for `text' field. * src/ftview.c (status): Use `unsigned long' for `encoding'. (FT_ENCODING_OTHER): Use `unsigned long'. 2016-10-18 Alexei Podtelezhnikov [graph] Untested legacy 15/16-bit color fixes. Our tools do not use the legacy 15/16-bit color modes. This is mostly for the sake of correctness. We might also remove the code. * graph/grblit.c (blit_gray{8,}_to_{555,565}): Updated. * graph/x11/grx11.c (gr_x11_format_{bgr565,rgb555,bgr555}): Updated. 2016-10-13 Alexei Podtelezhnikov * graph/grblit.c (blit_lcd28_to_24): Typo. 2016-10-10 Alexei Podtelezhnikov * src/ftdump.c (Print_Charmaps): Dump format info. 2016-10-09 Alexei Podtelezhnikov [ftview] Recognize other charmaps. * src/ftview.c (event_change_encoding): Recognize when FT_ENCODING_NONE has special other meaning. (write_header): Default case for `status.encoding'. 2016-10-07 Alexei Podtelezhnikov [ftview] Fix charmap cycling. * src/ftview.c (event_change_encoding): Reimplement relying on `cmap_index' field in TFont structure. 2016-10-05 Alexei Podtelezhnikov [ftview] Implement cycling through available charmaps. * src/ftview.c (event_change_encoding): New function. (Process_Event): New [Tab] event to cycle through available charmaps, also increase index steps to 16, 256, and 4096. (event_help): Updated. 2016-10-03 Alexei Podtelezhnikov * graph/grevents.h (grKey): Typo. 2016-10-01 İsmail Dönmez * src/ftinspect.pro (LIBS): Fix default value. 2016-09-24 Alexei Podtelezhnikov [ftstring] Add LGC and CJK sample strings. * src/ftstring.c (event_text_change): New function. (Process_Event): New [Tab] event to cycle through sample strings. (event_help): Offer it. (status, event_font_change, main): Updated. 2016-09-16 Werner Lemberg * src/ftbench.1: Improve. 2016-09-08 Werner Lemberg * Version 2.7 released. ======================= Tag sources with `VER-2-7'. * README: Updated. * src/*.1: Updated. * src/ftinspect.pro: Updated. 2016-08-20 Alexei Podtelezhnikov * src/ftdump.c (Print_Programs): Use fewer casts. 2018-08-19 Werner Lemberg [ftdump] Fix clang compiler warnings. * src/ftdump.c (Print_Bytecode): Use cast instead of printf length modifier – we would need `hh', which only glibc offers. (Print_Programs): Use proper casts for constant strings and 16bit integer types. 2018-08-19 Werner Lemberg [ftgamma] Fix compiler warnings. * src/ftgamma.c (bit1, bit2, bit): Make them static. 2016-08-18 Alexei Podtelezhnikov [ftdump] Hexdump composite glyf instructions too. * src/ftdump.c (Print_Programs): Updated. (Print_Bytecode): Cleaned up. 2016-08-18 Alexei Podtelezhnikov [ftdump] Implement hexdump of TrueType instructions. This is useful when searching for interesting instructions. Pushed values come with underscore prefix to distinguish them from actual opcodes. * src/ftdump.c (Print_Bytecode, Print_Programs): Implement this. (usage): New option `-p' described. (main): Updated. * src/ftdump.1: Updated. 2016-08-06 Werner Lemberg Move Mark Leisher's `getopt' implementation to a separate file. We need this since `ftbench.c' now includes `unistd.h', which in turn declares `getopt'. * src/common.c, src/common.h: Move `getopt' stuff to... * src/mlgetopt.c, src/mlgetopt.h: ... these new files. Update all callers. * src/common.c, src/common.h: Use standard C only. Replace `CONST' with `const'. * Makefile (COMMON_OBJ): Add `mlgetopt'. 2016-08-02 Alexei Podtelezhnikov * src/ftbench.c (get_time, benchmark): Clean up timers. 2016-08-01 Alexei Podtelezhnikov [ftbench] Use POSIX timers when available. * src/ftbench.c (get_time): Use `clock_gettime' instead of obsolete and less accurate `gettimeofday'. (benchmark): Updated. 2016-07-14 Werner Lemberg [ftgrid] New option `-d' to give start-up design coordinates. This code is similar to the one from `ftmulti'. * src/ftgrid.c: Include `stdlib.h'. (GridStatusRec): Add `requested_pos' and `requested_cnt' to hold the design coordinate data from the command line. (event_font_change): Handle them. (parse_cmdline): Handle option `-d'. (usage): Document `-d'. (main): Don't load named instances if we have start-up design coordinates. * src/ftgrid.1: Updated. 2016-07-14 Werner Lemberg Prepare suppression of named instances. No functional change. * src/ftcommon.c (FTDemo_Install_Font): Add boolean parameter to avoid loading of instances. * src/ftcommon.h: Updated. * src/ftgrid.c (main), src/ftstring.c (main), src/ftview.c (main): Updated. 2016-07-14 Werner Lemberg [ftgrid] Properly handle named instances. * src/ftgrid.c (event_font_change): Properly initialize the design positions with the named instance's value, if appropriate. 2016-07-12 Werner Lemberg * Version 2.6.5 released. ========================= Tag sources with `VER-2-6-5'. * README: Updated. * src/*.1: Updated. * src/ftinspect.pro: Updated. 2016-07-05 Werner Lemberg * Version 2.6.4 released. ========================= Tag sources with `VER-2-6-4'. * README: Updated. * src/*.1: Updated. * src/ftinspect.pro: Updated. 2016-06-26 Werner Lemberg [ftinspect] Fix pixel box drawing. This commit circumvents a problem with Qt's `QPainter::drawImage' function; it seems that the alignment of the output becomes imprecise at high magnification values. * src/ftinspect.c (GlyphBitmap::paint): Manually draw pixel boxes with `fillRect'. 2016-05-29 Werner Lemberg * src/ftbench.c (main): Add cast to remove compiler warning. 2016-05-29 Werner Lemberg [ftinspect] Mark pixel centers in the grid with a cross. * src/ftinspect.c (Grid::paint): Implement it. 2016-05-29 Werner Lemberg [ftinspect] Prepare zoom for drawing pixel center. This change makes the zoom use only even values larger than a given threshold; it also implements (kind of) logarithmic zooming. * src/ftinspect.h (QSpinBoxx): New class, derived from `QSpinBox'. (MainGUI): Updated. * src/ftinspect.cpp (MainGUI::createLayout): Updated. (QSpinBoxx::valueFromText, QSpinBoxx::stepBy): New methods. 2016-05-26 Werner Lemberg [ftbench] Add support for third TrueType interpreter version. Option `-H' now takes an argument to select the CFF hinting engine, and new option `-I' selects the TT interpreter version. * src/ftbench.c (default_hinting_engine, default_interpreter_version): Replaced with... (tt_interpreter_versions, num_tt_interpreter_versions, dflt_tt_interpreter_version, cff_hinting_engines, num_cff_hinting_engines, dflt_cff_hinting_engine, cff_hinting_engine_names): ... these new global variables. (main): Expand check for alternative TrueType interpreter versions and CFF hinting engines. Add argument to option `-H'. Add new option `-I'. (usage): Updated. * src/ftbench.1: Updated. 2016-05-26 Werner Lemberg [ttdebug] Rename option `-H' to `-I'. This is for consistency with a forthcoming change to `ftbench'. * src/ttdebug.c (main): Implement it. (Usage): Updated. * src/ttdebug.1: Updated. 2016-05-26 Werner Lemberg [ttdebug] Add support for third TrueType interpreter version. Option `-H' now takes an argument. * src/ttdebug.c (default_version, alternative_version): Replaced with... (tt_interpreter_versions, num_tt_interpreter_versions, dflt_tt_interpreter_version): ... these new global variables. (main): Expand check for alternative TrueType interpreter versions. Add argument to option `-H'. (Usage): Updated. * src/ttdebug.1: Updated. 2016-05-21 Werner Lemberg [ftgrid] Add support for third TrueType interpreter version. * src/ftgrid.c (GridStatusRec): Replace `tt_interpreter_version' with `tt_interpreter_versions' array. Add `num_tt_interpreter_versions' and `tt_interpreter_version_idx'. (event_tt_interpreter_version_change): Updated. (main): Expand check for alternative TrueType interpreter versions. 2016-05-21 Werner Lemberg [ftdiff] Add support for third TrueType interpreter version. * src/ftdiff.c (ColumnStateRec): Replace `tt_interpreter_version' with `tt_interpreter_versions' array. Add `num_tt_interpreter_versions' and `tt_interpreter_version_idx'. (render_state_init): Expand check for alternative TrueType interpreter versions. (render_state_draw): Updated. (process_event) <'H'>: Updated. 2016-05-21 Werner Lemberg [ftview] Add support for third TrueType interpreter version. * src/ftview.c (status): Replace `tt_interpreter_version' with `tt_interpreter_versions' array. Add `num_tt_interpreter_versions' and `tt_interpreter_version_idx'. (event_tt_interpreter_version_change, write_header): Updated. (main): Expand check for alternative TrueType interpreter versions. 2016-05-21 Werner Lemberg Make compilation work with clang++. Also fix some warning messages. * src/ftcommon.c (FTDemo_Display_Clear): Use proper cast. (string_load): Replace shifts with multiplication. * src/ftgamma.c: (bit1, bit2): Complete initializer. (do_ptrn, do_fill): Use proper casts. (Render_Bitmap): s/bitmap/out/, s/bit/in/, to avoid shadowing global variable `bit'. * src/ftgrid.c (GridStatus): Make `lcd_filter' of type `FT_LcdFilter'. (bitmap_scale): Use proper casts. (grid_status_draw_outline): Fix int vs. short warnings. (event_cff_hinting_engine_change): Add initializer. (event_lcd_filter_change): Properly handle `status.lcd_filter'. * src/ftmulti.c (requested_cnt, used_num_axis): Make them `unsigned int'. (Process_Event, main): Updated. * src/ftstring.c (status): Complete initializer. * src/ftvalid.c (ValidatorType): Fix enum syntax. * src/ftview.c (event_cff_hinting_engine_change): Add initializer. (Process_Event) <'L'>: Fix call to FT_Library_SetLcdFilter. * src/output.c (put_ascii_string, put_unicode_be16_string): Add casts. 2016-05-19 Werner Lemberg [ftinspect] Use bottom left as the viewport anchor for resizing. We store the last bottom left corner point of the viewport rectangle and adjust the verticalScrollBar value by the delta relative to the current bottom left corner position. * src/ftinspect.h (QGraphicsViewx): New class, derived from `QGraphicsView'. (MainGUI): Updated. * src/ftinspect.cpp (MainGUI::createLayout): Updated. (QGraphicsViewx::QGraphicsViewx, QGraphicsViewx::scrollContentsBy, QGraphicsView::resizeEvent): New methods. 2016-05-18 Werner Lemberg [ftinspect] Re-implement file watching. * src/ftinspect.cpp (MainGUI::MainGUI): Initialize file watcher and timer. (MainGUI::closeFont): Updated. (MainGUI::watchCurrentFont): New method. (MainGUI::showFont): Handle file watching for both real files and softlinks. Display a softlink name as italic font. (MainGUI::createConnections): Updated. * src/ftinspect.h (MainGUI): Updated. 2016-05-15 Werner Lemberg [ftinspect] Redesign file/face/instance navigation. Instead of peeking into a font with a negative argument to `FT_Face_New', we now directly load appropriate (font, face, instance) triplets. The new code also tries a bit harder to separate the font stuff in the `Engine' class from the GUI navigation control in `MainGUI'. * src/ftinspect.h (Font): Removed. (MainGUI): Make `fontList' a `QStringList'. New members `currentNumberOfFaces' and `currentNumberOfNamedInstances'. Move `faceCounter' and `faceIDMap' members to... (Engine): ...this class. Make `faceRequester' a friend. * src/ftinspect.cpp (faceRequester): Check font index. Updated. (Engine::Engine): Updated. (Engine::numberOfFaces, Engine::numberOfNamedInstances, Engine::loadFont, Engine::removeFont): Rewritten. (MainGUI::loadFonts, MainGUI::closeFont, MainGUI::showFont, MainGUI::adjustGlyphIndex, MainGUI::checkCurrentFaceIndex, MainGUI::checkCurrentNamedInstanceIndex): Simplified. (MainGUI::nextFace, MainGUI::nextNamedInstance, MainGUI::drawGlyph, MainGUI::setDefaults): Updated. 2016-05-15 Werner Lemberg [ftinspect] Minor issues. * src/ftinspect.cpp (Engine::loadFont): More readable code. (MainGUI::showFont): Remove no longer needed argument. Updated. (MainGUI::checkCurrentFontIndex, MainGUI::checkCurrentFaceIndex, MainGUI::checkCurrentNamedInstanceIndex): Minor generalization. * src/ftinspect.h (MainGUI): Updated. 2016-05-15 Werner Lemberg [ftinspect] Replace face ID hash with a map. We need this for later changes that will rely on ordered data. * src/ftinspect.cpp (FaceID::operator==): Replace with... (FaceID::operator<): ... this method. (qHash): Removed. (faceRequester, Engine::loadFont, Engine::removeFont, MainGUI::closeFont, MainGUI::showFont): Updated. * src/ftinspect.h (FaceID): Updated. (Main): Rename member `faceIDHash' to `faceIDMap'. 2016-05-15 Werner Lemberg [ftinspect] More variable and function renamings. Mainly for consistency. * src/ftinspect.cpp (faceRequester): s/faceID/ftcFaceID/, s/id/faceID/. (Engine::numberOfFaces): s/result/numFaces/. (Engine::numberOfNamedInstances): s/result/numNamedInstances/. (Engine::loadFont): s/instanceIndex/namedInstanceIndex/. (Engine::removeFont): s/face_id/ftcFaceID/, s/instanceIndex/namedInstanceIndex/. (MainGUI::showFont): s/numberOfFaces/currentNumberOfFaces/, s/numberOfNamedInstances/currentNumberOfNamedInstances/. Updated. (MainGUI::checkCurrentFaceIndex): s/numberOfFaces/currentNumberOfFaces/. (MainGUI::checkCurrentInstanceIndex): Renamed to... (MainGUI::checkCurrentNamedInstanceIndex): ...this. s/numberOfNamedInstances/currentNumberOfNamedInstances/. Updated. (MainGUI::nextFace): s/numberOfFaces/currentNumberOfFaces/. (MainGUI::nextInstance): Renamed to... (MainGUI::nextNamedInstance): ... this. s/numberOfNamedInstances/currentNumberOfNamedInstances/. (MainGUI::previousInstance): Renamed to... (MainGUI::previousNamedInstance): ...this. (MainGUI::createLayout, MainGUI::createConnections, MainGUI::setDefaults): Updated. * src/ftinspect.h (Engine): Updated. (MainGUI): s/nextInstanceButton/nextNamedInstanceButton/ s/previousInstanceButton/previousNamedInstanceButton/. 2016-05-14 Werner Lemberg [ftinspect] Remove file watching. This approach doesn't work well. A new, improved implementation will follow. * src/ftinspect.h (Engine): Remove `currentFontFileInfo', `currentFontFileDate', `maxRetries', and `currentRetry'. Updated. (MainGUI): Remove `timer'. Updated. * src/ftinspect.cpp (Engine::watchCurrentFont): Removed. (Engine::loadFont, Engine::update): Updated. (MainGUI::MainGUI): Updated. (MainGUI::watchCurrentFont): Removed. (MainGUI::createConnections): Updated. 2016-05-14 Werner Lemberg [ftinspect] Variable renaming. * src/ftinspect.cpp, src/ftinspect.h (FaceID): s/instanceIndex/namedInstanceIndex/. 2016-05-12 Werner Lemberg [ftinspect] Variable renamings. For consistency. * src/ftinspect.cpp, src/ftinspect.h: s/numFaces/numberOfFaces/, s/numNamedInstancesList/numberOfNamedInstancesList/, s/numNamedInstances/numberOfNamedInstances/, s/currentInstanceIndex/currentNamedInstanceIndex/. s/currentNumGlyphs/currentNumberOfGlyphs/. 2016-05-12 Werner Lemberg [ftinspect] Display more glyph and font information. * src/ftinspect.cpp (Engine::loadFont): Update `curFamilyName' and `curStyleName'. (Engine::currentFamilyName, Engine::currentStyleName, Engine::glyphName): New methods. (MainGUI::closeFont, MainGUI::showFont, MainGUI::adjustGlyphIndex, MainGUI::createLayout): Updated. * src/ftinspect.h (Engine): New members `curFamilyName' and `curStyleName'. Updated. (MainGUI): New `fontFilenameLabel', `fontNameLabel', and `glyphNameLabel' members. Use `QGridLayout' for `infoRightLayout'. 2016-05-12 Werner Lemberg [ftinspect] Fix logical mistakes in font navigation. * src/ftinspect.cpp (Engine::Engine): Initialize `ftSize'. (MainGUI::showFont): Don't let exceed indices the number of available index values if `preserveIndices' is active. Always call `engine->loadFont' even for invalid fonts so that various font-global variables are set correctly. 2016-05-11 Werner Lemberg [ftinspect] Minor. * src/ftinspect.cpp, src/ftinspect.h: s/Instances/NamedInstances/. Also display `Previous/Next Named Instance' on the buttons. 2016-05-11 Werner Lemberg [ftinspect] Minor. * src/ftinspect.cpp, src/ftinspect.h: s/fonts/fontList/. 2016-05-11 Werner Lemberg [ftinspect] Display glyph index. * src/ftinspect.cpp (MainGUI::createLayout): Add `infoLeftLayout' and `infoRightLayout' at the top of the window; add `glyphIndexLabel' to the right. (MainGUI::adjustGlyphIndex): Set text for `glyphIndexLabel' (MainGUI::setDefaults): Call `adjustGlyphIndex'. * src/ftinspect.h: Updated. 2016-05-11 Werner Lemberg [ftinspect] Only use integer values for size if units are px. * src/ftinspect.cpp (MainGUI::checkUnits): Implement it. (MainGUI::createLayout): Updated. 2016-05-11 Werner Lemberg [ftinspect] Add file watching; remove watch button. * src/ftinspect.cpp (Engine::loadFont): Initialize file info. (Engine::watchCurrentFont): New method. (Engine::update): Updated. (MainGUI::MainGUI): Set up timer. (MainGUI::showFont): Add parameter to control updating of current indices. (MainGUI::watchCurrentFont): New method. (MainGUI::createLayout): Remove watch button code. (MainGUI::createConnections): Handle timer. * src/ftinspect.h (Engine): Add `currentFontFileInfo', `currentFontDateTime', `maxRetries', and `currentRetry'. Updated. (MainGUI): Updated. 2016-05-10 Werner Lemberg * src/ftinspect.cpp, src/ftinspect.h (MainGUI): Provide `aboutQt'. This removes a warning at start-up. 2016-05-10 Werner Lemberg [ftinspect] Display rendered glyph bitmaps. * src/ftinspect.cpp (Engine::update): Updated. (GlyphBitmap::GlyphBitmap, GlyphBitmap::~GlyphBitmap, GlyphBitmap::boundRect, GlyphBitmap::paint): New methods for constructing a rendered bitmap of the glyph. (MainGUI::checkAntiAliasing): Updated. (MainGUI::setGraphicsDefaults): Create color mapping tables for 8bit and 1bit pixmaps as needed by Qt. (MainGUI::drawGlyph): Honor `show bitmap' check box. (MainGUI::createLayout, MainGUI::setDefaults): Updated. (MainGUI::createConnections): Handle `showBitmapCheckBox'. * src/ftinspect.h (GlyphBitmap): New class, derived from `QGraphicsItem'. (MainGUI): Mew member `currentGlyphBitmapItem'. New members `grayColorTable' and `monoColorTable'. Updated. (Engine): Remove unused `showBitmap' member. 2016-05-10 Werner Lemberg [ftinspect] Make hinting mode selection work. * src/ftinspect.cpp (Engine::loadFont): Set font type. (Engine::setCFFHintingMode, Engine::setTTInterpreterVersion): New methods. (MainGUI::showFont): Updated. (MainGUI::checkHinting): Gray out hinting mode combo box items depending on font type. (MainGUI::checkHintingMode): Implemented. (MainGUI::checkAutoHinting): Updated. (MainGUI::setDefaults): Updated. * src/ftinspect.h: Include some internal FreeType header files. (Engine): New member `fontType'. New enumeration `FontType'. Updated. (MainGUI): New members `currentCFFHintingMode' and `currentTTInterpreterVersion'. * ftinspect.pro (DEFINES): Add `FT2_BUILD_LIBRARY' to enable access to internal FreeType headers. 2016-05-10 Werner Lemberg [ftinspect] Minor. * src/ftinspect.cpp, src/ftinspect.h: Rename `point indices' to `point numbers'. 2016-05-10 Werner Lemberg [ftinspect] Display glyph point numbers. * src/ftinspect.cpp (GlyphPointNumbers::GlyphPointNumbers, GlyphPointNumbers::boundRect, GlyphPointNumbers::paint): New methods for constructing the set of glyph point numbers. (MainGUI::drawGlyph): Honor `glyph point indices' check box. (MainGUI::createLayout): Updated. (MainGUI::createConnections): Handle `showPointIndicesCheckBox'. * src/ftinspect.h (GlyphPoints): New class, derived from `QGraphicsItem'. (MainGUI): Mew member `currentGlyphPointNumbersItem'. Updated. 2016-05-09 Werner Lemberg [ftinspect] Display glyph points. Also fix other minor issues. * src/ftinspect.cpp (GlyphPoints::GlyphPoints, GlyphPoints::boundRect, GlyphPoints::paint): New methods for constructing the set of glyph points. (MainGUI::checkShowPoints, MainGUI::setGraphicsDefaults): Updated. (MainGUI::drawGlyph): Honor `glyph outlines' and `glyph points' check boxes. (MainGUI::createLayout): Updated. (MainGUI::createConnections): Handle `showOutlinesCheckBox'. (GlyphOutline::GlyphOutline): Improve computation of bounding rectangle. (Engine::update): Updated. * src/ftinspect.h (Engine): Remove unused members which are handled in MainGUI. (GlyphPoints): New class, derived from `QGraphicsItem'. (MainGUI): Mew member `currentGlyphPointsItem'. 2016-05-09 Werner Lemberg [ftinspect] Minor. * src/ftinspect.cpp, src/ftinspect.h: s/loadGlyph/loadOutline/. s/Glyph/GlyphOutline/. s/drawGlyphOutline/drawGlyph/. 2016-05-09 Werner Lemberg [ftinspect] Display glyphs outlines. * src/ftinspect.cpp (Engine::loadGlyph): New method. (moveTo, lineTo, conicTo, cubicTo): New wrapper functions for `QPainterPath' methods. (outlineFuncs): New structure, used as an interface to `FT_Outline_Decompose'. (Glyph::Glyph, Glyph::boundRect, Glyph::paint): New methods for constructing a glyph object. (MainGUI::drawGlyphOutline): New method. (MainGUI::showFont, MainGUI::checkUnits, MainGUI::adjustGlyphIndex, MainGUI::createLayout): Updated. (MainGUI::createConnections): Handle `sizeDoubleSpinBox' and `dpiSpinBox'. * src/ftinspect.h (Engine): Updated. (Glyph): New class, derived from `QGraphicsItem'. (MainGUI): New member `currentGlyphOutlineItem'. Updated. 2016-05-09 Werner Lemberg [ftinspect] Fix a bunch of glitches. * src/ftinspect.cpp (FaceID::FaceID): Initialize members with `-1'. While not needed, it better indicates an invalid lookup in the hash for debugging purposes. (Engine::Engine): Don't call `update' here, since `MainGUI::setDefaults' wasn't called yet. (Engine::loadFont): Call `update'. Return -1 for an invalid face ID. (Engine::removeFont): Properly handle invalid face ID. (Engine::update): Fix code reversal for pixels vs. points. (MainGUI::MainGUI): Initialize `engine'. (MainGUI::closeFont): First remove the font, then the face ID. Handle invalid font also. (MainGUI::showFont): Handle invalid font also. (MainGUI::setGraphicsDefaults): Set width of outline pen. 2016-05-08 Werner Lemberg [ftinspect] Display axes. * src/ftinspect.cpp (Grid::Grid): Add second parameter to pass axis pen. (Grid::paint): Add axes. Increase grid size. (Grid::boundingRect):Updated. (MainGUI::createLayout): Updated. * src/ftinspect.h: Updated. 2016-05-08 Werner Lemberg [ftinspect] Display grid. The dimensions are still arbitrary, though. We now need Qt 4.6 or newer. * src/ftinspect.h (Engine): Remove `zoom' member. It doesn't belong here. (Grid): New class, derived from `QGraphicsItem'. We need this to disable drawing of the grid if the zoom factor is too small. (MainGUI): Add a `QGraphicsScene' member. Add a `zoom' method. * src/ftinspect.cpp (Engine::update): Updated. (Grid::Grid, Grid::boundingRect, Grid::paint): New methods. (MainGUI::createLayout): Initialize `glyphView' and `glyphScene'; add a grid object. Change zoomSpinBox to display an integer zoom factor instead of a percentage. This simplifies code since we don't have to bother with scaling values < 1. (MainGUI::createConnections, MainGUI::setDefaults): Updated. 2016-05-08 Werner Lemberg [ftinspect] Provide some drawing pens. * src/ftinspect.h (MainGUI): Provide colored pens for axes, blue zones, grid lines, on and off points, outlines, and segment lines. * src/ftinspect.cpp (MainGUI::setGraphicsDefaults): New method. (MainGUI::MainGUI): Updated. 2016-05-07 Werner Lemberg [ftinspect] Make glyph navigation work. * src/ftinspect.cpp (MainGUI::showFont): Don't use local variable. (MainGUI::adjustGlyphIndex): New method. (MainGUI::createConnections): Use `QSignalMapper' class to map all navigation button signals to a single receiver function (namely `adjustGlyphIndex'). (MainGUI::setDefaults): Updated. * src/ftinspect.h (MainGUI): New `currentGlyphIndex' member. Updated. 2016-05-07 Werner Lemberg [ftinspect] Really load fonts. * src/ftinspect.cpp (Engine::loadFont, Engine::removeFont): New methods. (Engine::update): Set font-independent scaler values. (MainGUI::closeFont): Remove font ID from hash and font from cache. (MainGUI::showFOnt): Call `loadFont'. (MainGUI::setDefaults): Set initial value of `faceCounter' to 1 to circumvent a FreeType buglet. * src/ftinspect.h (Engine): New `scaler' and `ftSize' members. Updated. (MainGUI): New member `currentNumGlyphs'. 2016-05-07 Werner Lemberg * src/ftinspect.cpp (MainGUI::showFont): Another logic fix. 2016-05-07 Werner Lemberg [ftinspect] s/maxFaces/faceCounter/. * src/ftinspect.cpp, src/ftinspect.h: Do it. 2016-05-07 Werner Lemberg [ftinspect] Another try to implement `faceRequester'. * src/ftinspect.h (FaceID): Extend structure to make it suitable as key to Qt's `QHash' class. (qHash): Also needed for `QHash'. (MainGUI): Provide running ID number in `maxFaces'. New `faceIDHash' to map between (font,face,instance) index triplets and IDs. * src/ftinspect.cpp (FaceID::FaceID, FaceID::operator==, qHash): Implement. (faceRequester): Use `faceIDHash'. (MainGUI::showFont): Fill `faceIDHash'. (MainGUI::setDefaults): Updated. 2016-05-06 Werner Lemberg * src/ftinspect.cpp (MainGUI::showFont): Fix logic. 2016-05-06 Werner Lemberg [ftinspect] Simplify code. * src/ftinspect.cpp (MainGUI::createConnections, MainGUI::createActions): Use `connect' variant that doesn't need `this' parameter. 2016-05-06 Werner Lemberg [ftinspect] Compute load flags for `FT_Load_Glyph'. * src/ftinspect.cpp (Engine::update): Compute `doHinting' and `doAutoHinting', and `loadFlags'. * src/ftinspect.h (Engine): Updated. 2016-05-06 Werner Lemberg [ftinspect] Add general hinting check button. * src/ftinspect.cpp (MainGUI::checkHinting): New method. (MainGUI::createLayout, MainGUI::createConnections, MainGUI::setDefaults): Updated. (MainGUI::checkAutoHinting): Also handle `hintingModeLabel'. * src/ftinspect.h: Updated. 2016-05-06 Werner Lemberg [ftinspect] More gamma slider settings. * src/ftinspect.cpp (MainGUI::createLayout): Set gamma slider tick intervals. (MainGUI::setDefaults): Set default value for gamma slider. Also move other spin box default values to this function. 2016-05-06 Werner Lemberg [ftinspect] Handle LCD filter change. * src/ftinspect.cpp (MainGUI::checkLcdFilter): New method. (MainGUI::setDefaults): Set up LCD filter mapping. Call `checkLcdFilter'. (MainGUI::createConnections): Register `checkLcdFilter'. * src/ftinspect.h (MainGUI): Updated. 2016-05-06 Werner Lemberg [ftinspect] Indent `show point indices' check box. * src/ftinspect.cpp (MainGUI::createLayout): Implement it. * src/ftinspect.h: Updated. 2016-05-06 Werner Lemberg [ftinspect] Minor. * src/ftinspect.cpp (MainGUI::checkAutoHinting): Fix logic for warping check box. 2016-05-06 Werner Lemberg [ftinspect] Add check box for auto-hinting. This allows easier hinting mode switch than having it in the hinting mode combo box. * src/ftinspect.cpp (MainGUI::checkAutoHinting): New method, containing almost stuff from ... (MainGUI::checkHintingMode): Updated. (MainGUI::createLayout): Updated; we also indent check boxes dependent on auto-hinting. (MainGUI::createConnections, MainGUI::setDefaults): Updated. * src/ftinspect.h: Updated. (HintingModes): Remove `HintingMode_AutoHinting' enum value. 2016-05-06 Werner Lemberg [ftinspect] Disable unavailable items in anti-aliasing combo box. * src/ftinspect.h (MainGUI): Make `setDefaults' public. (hintingModesTrueTypeHash, hintingModesCFFHash): New maps. (hintingModesAlwaysDisabled): New list. * src/ftinspect.cpp (MainGUI::setDefaults): Set up mappings between GUI enumerations and FreeType property values. Use them to create `hintingModesAlwaysDisabled', a list of enum values that gets fed to the anti-alias combo box's `setItemDisabled' method. (MainGUI::MainGUI): Don't call `setDefaults' here but... (main): ... here, after FreeType initialization. 2016-05-05 Werner Lemberg [ftinspect] Handle engine properties. * src/ftinspect.cpp (Engine::Engine): Handle CFF's `hinting-engine', TrueType's `interpreter-version', and the auto-hinter's `warping' properties. * src/ftinspect.h (Engine): Updated. 2016-05-05 Werner Lemberg [ftinspect] Start implementation of `showFont'. * src/ftinspect.cpp (MainGUI::loadFonts): Call `showFont'. (MainGUI:closeFont): Fix logic and call `showFont'. (MainGUI::showFont): New method. Doesn't display something yet, but font navigation buttons are fully functional now. (MainGUI::previousFont, MainGUI::nextFont, MainGUI::previousFace, MainGUI::nextFace, MainGUI::previousInstance, MainGUI::nextInstance): Call `showFont'. * src/ftinspect.h (MainGUI): Updated. 2016-05-05 Werner Lemberg [ftinspect] Add methods to get number of faces and instances. * src/ftinspect.cpp (Engine::numFaces, Engine::numInstances): New methods. * src/ftinspect.h (Engine): Updated. 2016-05-05 Werner Lemberg [ftinspect] Minor. * src/ftinspect.cpp (faceRequester): Use reference. (MainGUI::loadFonts): Simplify. 2016-05-05 Werner Lemberg [ftinspect] Make `MainGUI' and `Engine' classes more symmetric. Also avoid `const' issues. * src/ftinspect.h (Engine): Add `gui' field. Updated. (MainGUI): Don't use `const' for `engine'. Updated. * src/ftinspect.cpp (Engine::Engine, Engine::update): Updated. (MainGUI::update, main): Updated. 2016-05-04 Werner Lemberg [ftinspect] Add buttons for instances. * src/ftinspect.cpp (MainGUI::checkCurrentInstanceIndex, MainGUI::previousInstance, MainGUI::nextInstance): New methods. (MainGUI::createLayout): Updated. We now use a grid layout for the font buttons. (MainGUI::createConnections, MainGUI::setDefaults): Updated. * src/ftinspect.h: Updated. 2016-05-04 Werner Lemberg [ftinspect] Redesign font handling. At this early stage, it's not always clear to me how to do things correctly, so here's another try. * src/ftinspect.h (Font): Redesigned, using a list of instance numbers. (FaceID): New structure, for communication with the face requester. (Engine): We need the `MainGUI' structure for initializing the face requester. (MainGUI): Make `faceRequester' a friend. Replace string list `fontFileNames' with `fonts', which is a list of `Font' elements. Add `currentInstanceIndex'. * src/ftinspect.cpp (faceRequester): Replace dummy code with something more serious. (Engine::Engine, Engine::update): Updated. (MainGUI::loadFonts, MainGUI::closeFont, MainGUI::checkCurrentFontIndex, MainGUI::checkCurrentFaceIndex, MainGUI::nextFont, MainGUI::nextFace): Updated to use new `fonts' member. (MainGUI::setDefaults, main): Updated. 2016-05-04 Werner Lemberg [ftinspect] Minor. * src/ftinspect.h, src/ftinspect.cpp: s/checkCurrentFontFileIndex/checkCurrentFontIndex/, s/currentFontFileIndex/currentFontIndex/. 2016-05-04 Werner Lemberg [ftinspect] Minor. * src/ftinspect.h (Engine): Add destructor. (MainGUI): Use point to `engine'. * src/ftinspect.cpp (Engine::~Engine): Implement. (MainGUI::update): Updated. 2016-05-04 Werner Lemberg [ftinspect] Better intertwine `Engine' and `MainGUI'. * src/ftinspect.cpp (MainGUI::update): New method. (main): Use it. * src/ftinspect.h (Engine): Make it a friend of `MainGUI'. (MainGUI): New member `engine'. Updated. 2016-05-04 Werner Lemberg * src/ftinspect.cpp (MainGUI::loadFonts): Improve logic. 2016-05-04 Werner Lemberg [ftinspect] Make `previous face' and `next face' button logic work. It still does nothing, though. * src/ftinspect.h (MainGUI): New slots `checkCurrentFaceIndex', `previousFace, and `nextFace'. New members `numFaces' and `currentFaceIndex'. * src/ftinspect.cpp (MainGUI::checkCurrentFaceIndex, MainGUI::previousFace, MainGUI::nextFace): New methods. (MainGUI::createConnections): Register connections for `previousFaceButton' and `nextFaceButton'. (MainGUI::setDefaults): Updated. 2016-05-04 Werner Lemberg * src/ftinspect.cpp (MainGUI::checkCurrentFontFileIndex): Fix logic. 2016-05-04 Werner Lemberg [ftinspect] Add buttons for faces. * src/ftinspect.cpp (MainGUI::createLayout): New buttons for `previous face' and `next face'; they are put into a separate row (`fontLayout') together with the buttons for `previous font' and `next font'. s/fontSizeLayout/sizeLayout/. * src/ftinspect.h: Updated. 2016-05-04 Werner Lemberg [ftinspect] Don't use size in pixels for navigation buttons. Instead, derive the width from the displayed text. * src/ftinspect.h (QPushButtonx): New class, derived from `QPushButton'. * src/ftinspect.cpp (QPushButtonx::QPushButtonx): New constructor. (MainGUI::createLayout): Use `QPushButtonx' for navigation buttons. 2016-05-03 Werner Lemberg [ftinspect] Make `previous font' and `next font' button logic work. * src/ftinspect.h (MainGUI): New slots `checkCurrentFontFileIndex', `previousFont, and `nextFont'. * src/ftinspect.cpp (MainGUI::checkCurrentFontFileIndex, MainGUI::previousFont, MainGUI::nextFont): New methods. (MainGUI::createConnections): Register connections for `previousFontButton' and `nextFontButton'. (MainGUI::loadFonts, MainGUI::closeFont, MainGUI::setDefaults): Updated. 2016-05-03 Werner Lemberg [ftinspect] Add file dialogs. * src/ftinspect.h: Include some more Qt headers. (MainGUI): Add `fontFileNames' and `currentFontFileIndex'. Add actions to load and close font files. * src/ftinspect.cpp (MainGUI::loadFonts, MainGUI::closeFont): New methods. (MainGUI::createActions, MainGUI::createMenus, MainGUI::setDefaults): Updated. 2016-05-03 Werner Lemberg [ftinspect] Better code. * src/ftinspect.h (QComboBoxx): New class, derived from `QComboBox'; we add one method `setItemEnabled' to enable (or disable) an item with a given index. (MainGUI): Use `QComboBoxx' for `antiAliasingComboBoxx' (was: `antiAliasingComboBox') and `hintingModeComboBoxx' (was: `hintingModeComboBox'). Update all users. * src/ftinspect.cpp (MainGUI::checkHintingMode): Simplified. (QComboBoxx::setItemEnabled): New method. 2016-05-03 Werner Lemberg [ftinspect] Start with FreeType initialization. * src/ftinspect.h: Include some FreeType headers. (Font): New structure for holding a (physical) font. (Engine): New class for communication with FreeType library. (MainGUI): Make `engine' a friend. * src/ftinspect.cpp (faceRequester): New function for FreeType's cache manager. (Engine::Engine, Engine::update): Some basic functions; to be extensively revised in later commits. (main): Updated. * src/ftinspect.pro: Add support for FreeType and dependent libraries. Right now, you have to adjust paths manually. 2016-05-02 Werner Lemberg [ftinspect] Minor. * src/ftinspect.h, src/ftinspect.cpp: s/showBitmapsCheckBox/showBitmapCheckBox/. 2016-05-02 Werner Lemberg [ftinspect] Adjust layout. * src/ftinspect.cpp (MainGUI::createLayout): Move size, dpi, and zoom stuff one row down. s/fontLayout/fontSizeLayout/. * src/ftinspect.h: Updated. 2016-05-02 Werner Lemberg [ftinspect] Add DPI control. * src/ftinspect.cpp (MainGUI::createLayout): Add `unitsComboBox' to select between px and pt. Add `dpiLabel' and `dpiSpinBox' to select the DPI value. (MainGUI::checkUnits): New function. (MainGUI::createConnections, MainGUI::setDefaults): Updated. * src/ftinspect.h: Updated. 2016-05-01 Werner Lemberg [ftinspect] Some more GUI initialization defaults. * src/ftinspect.cpp (MainGUI::setDefaults): Updated. 2016-05-01 Werner Lemberg [ftinspect] Avoid parameters for signal functions. This makes the code a bit more elegant. * src/ftinspect.cpp (MainGUI::checkHintingMode, MainGUI::checkAntiAliasing): Implement. (MainGUI::createConnections, MainGUI::setDefaults): Updated. * src/ftinspect.h: Updated. 2016-05-01 Werner Lemberg [ftinspect] Rename some enum values. * src/ftinspect.cpp, src/ftinspect.h: Updated. 2016-05-01 Werner Lemberg [ftinspect] Provide dummy default values for GUI initialization. * src/ftinspect.cpp (MainGUI::setDefaults): Set some values. 2016-05-01 Werner Lemberg [ftinspect] Add signal for showPointsCheckBox. * src/ftinspect.cpp (MainGUI::checkShowPoints): New function. (MainGUI::createConnections): Add signal. * src/ftinspect.h: Updated. 2016-05-01 Werner Lemberg [ftinspect] Add signal for antiAliasingComboBox. * src/ftinspect.cpp (MainGUI::checkAntiAliasing): New function. (MainGUI::createConnections): Add signal. * src/ftinspect.h: Updated. 2016-05-01 Werner Lemberg [ftinspect] Refine signal for hintingModeComboBox. * src/ftinspect.cpp (MainGUI::checkHintingMode): Grey out `slight' hinting item in antiAliasingComboBox if not in auto-hinting mode. Also set a different anti aliasing value for this case if `slight' was the current value. * src/ftinspect.h: Updated. 2016-05-01 Werner Lemberg [ftinspect] Add signal for hintingModeComboBox. Also fix typo `hortizontal' -> `horizontal'. * src/ftinspect.cpp (MainGUI::checkHintingMode): New function. (MainGUI::createConnections): Add signal. * src/ftinspect.h: Updated. 2016-05-01 Werner Lemberg [ftinspect] Improve combo box setup. * src/ftinspect.h (MainGUI): New enums `AntiAliasing', `HintingModes', and `LCDFilter'. * src/ftinspect.cpp (MainGUI::createLayout): Use new enums to set items in combo boxes. Also simplify computation of maximum width. 2016-04-30 Werner Lemberg * src/ftinspect.cpp (MainGUI::createLayout): Fix memory leak. 2016-04-30 Werner Lemberg [ftinspect] A new Qt based variant for ftgrid. GUI draft only. The idea is to eventually integrate the functionality of ftview, ftkern, and ftdiff also. The code compiles fine with both Qt4 and Qt5; it doesn't do anything yet beyond showing how the GUI looks like. * src/ftinspect.cpp, src/ftinspect.h: New source code files. * src/ftinspect.pro: New qmake input file. 2016-04-08 Werner Lemberg [ftview] Avoid hangs with bitmap only fonts. Problem reported by Hin-Tak Leung . * src/ftview.c (Render_Text, Render_Waterfall): Escape loop if not a single glyph could be rendered. 2016-03-18 Werner Lemberg * graph/x11/rules.mk (X11_LIB): Also append `/lib64'. 2016-03-02 Werner Lemberg [ftgrid] Use colors for dot numbers. We now have bitmap rendering also, and black numbers on a black background are ... not optimal. * src/ftgrid.c (grid_status_draw_outline): Implement it. 2016-03-01 Werner Lemberg [ftgrid] Exchange movement directions of `i' and `k' keys. This synchronizes the actions with its descriptions in the help screen. * src/ftgrid.c (Process_Event): Implement it. 2016-03-01 Werner Lemberg * src/ftgrid.c (grid_status_draw_outline): Fix memory leak. 2016-02-21 Alexei Podtelezhnikov [ftgrid] Touch up. * src/ftgrid.c (status): Initialize `header' as NULL to display font name initially. Use bits of new field `work' to control... (grid_status_draw_outline, main, Process_Event): Updated accordingly. * src/ftgrid.1: Updated. 2016-02-21 Werner Lemberg * src/ftgrid.c (event_grid_zoom): Make zoom up always work. 2016-02-21 Alexei Podtelezhnikov [ftgrid] Enable LCD filtering. * src/ftgrid.c (event_lcd_filter_change): New function. (status, main, Process_Event, event_help): Updated. 2016-02-20 Alexei Podtelezhnikov [ftgrid] Improve stroked path appearance. * src/ftgrid.c (grid_status_draw_outline): Hint scaled outline to follow gridlines and cover entire pixels. 2016-02-20 Alexei Podtelezhnikov [ftgrid] Display monochrome and LCD bitmaps. * src/ftgrid.c (grid_status_draw_outline): Rework to use... (bitmap_scale): New function that implements bitmap scaling. 2016-02-13 Alexei Podtelezhnikov [graph] Actually clear cache when full. * graph/gblender.c (gblender_lookup, gblender_lookup_channel): Updated. 2016-02-12 Alexei Podtelezhnikov [ftgrid] Display rendered bitmap (new feature). * src/ftgrid.c (status): New field to control new feature. (grid_status_draw_outline): Implement new feature here. (Process_Event, usage): Updated. 2016-02-10 Alexei Podtelezhnikov * src/ftgrid.c (grid_status_draw_outline): Use simpler line join. 2016-02-10 Alexei Podtelezhnikov [ftgrid] Use fixed-point scale and integer origin. * src/ftgrid.c (status): Change field types. (grid_status_init, grid_status_rescale_initial, grid_status_draw_grid, grid_hint_draw_segment, grid_status_draw_outline): Updated. 2016-02-07 Werner Lemberg * Version 2.6.3 released. ========================= Tag sources with `VER-2-6-3'. * README: Updated. * src/*.1: Updated. 2016-02-04 Alexei Podtelezhnikov * src/ftcommon.c (FTDemo_String_Draw): Typo. 2016-02-02 Alexei Podtelezhnikov * src/ftgrid.c, src/ftview.c, src/testname.c: Remove math.h. 2016-02-02 Alexei Podtelezhnikov [ftgrid] Fix dot position and shape. * src/ftgrid.c (circle_draw): Correct subpixel positioning. (ft_outline_new_circle): Correct circle approximation. 2016-02-01 Nikolaus Waxweiler [ftview] Fix toggling of `force auto-hinter' in light mode. Light mode does not imply auto-hinter anymore. * src/ftview.c (Process event) <'f'>: Update code. 2016-01-17 Alexei Podtelezhnikov * src/ftdiff.c (render_state_init): Update default LCD filter. 2016-01-14 Werner Lemberg Don't use macro names that start with `_[A-Z]' or contain `__'. Such macro names are reserved for both C and C++. * *.h: Harmonize ID macros so that file `foo.h' uses `FOO_H_'. * *.c: s/_Translator/Translator_'. * graph/x11/grx11.c (gr_x11_surface_init): s/_NET_WM_PID/NET_WM_PID/. * src/ftdiff.c: Replace structure names `_foo' with `foo_'. 2016-01-13 Alexei Podtelezhnikov [ftview] Cycle through available LCD filtering. * src/ftview.c (status, Process_Event): Implement cycle through `FT_LcdFilter'. 2016-01-11 Alexei Podtelezhnikov * src/ftview.c (status, Process_Event): Update default LCD filter. 2016-01-09 Alexei Podtelezhnikov [ftgamma] Provide alternative pattern. * src/ftgamma.c (do_ptrn, GammaPtrn): Implement slightly slanted anti-aliased lines. (Process_Event, event_help, main): Updated. * src/ftgamma.1: Updated. 2016-01-04 Alexei Podtelezhnikov [ftgamma] Enable color. * src/ftgamma.c (Render_GammaGrid): Split into... (Render_Bitmap): ... this renderer with color controls. (GammaGrid): ... and this grayscale bitmap builder. (event_color_change): New function. (Process_Event, event_help, main): Updated. * src/ftgamma.1: Updated. 2015-12-22 Alexei Podtelezhnikov [ftgamma] Minor refactoring. * src/ftgamma.c (Render_GammaGrid): Move labels from here... (main): ... to here. 2015-12-20 Alexei Podtelezhnikov Relocate gamma grid display from [ftview] to [ftgamma]. * src/ftview.c (Process_Event): Remove event `G'. (event_help): Update. (event_gamma_grid): Move to... * src/ftgamma.c (event_gamma_grid): ... here. (Process_Event): New function. (event_help): New function. (main): Update to handle events. 2015-12-18 Alexei Podtelezhnikov [ftstring, ftview] Auxiliary gamma rounding fixes. * src/ftstring.c (event_gamma_change): Updated. * src/ftview.c (event_gamma_grid): Updated. 2015-12-18 Alexei Podtelezhnikov * graph/gblender.c (gblender_set_gamma_table): Rounding, formatting. 2015-12-15 Werner Lemberg * src/ftgamma.c (do_fill): Fix compiler warning. 2015-12-14 Alexei Podtelezhnikov [ftgamma] Modernize appearance. * src/ftgamma.c: Major renovations. * src/ftgamma.1: Update. 2015-12-10 Werner Lemberg * src/ftcommon.c (FTDemo_Install_Font): Handle alloc/file errors. Problem reported by Alexei. 2015-12-09 Alexei Podtelezhnikov * src/ftstring.c (event_angle_change): Wrap angle differently. 2015-12-07 Alexei Podtelezhnikov [ftstring] Miscellaneous updates. * src/ftstring.c (event_gamma_change): Do not report gamma updates. (write_header): Permanently display gamma. (gamma_ramp_draw): Brighten the curve. 2015-12-06 Alexei Podtelezhnikov [graph] Small improvements. * graph/gblender.h (GBLENDER_SHADE_INDEX): Round to nearest grid. * graph/gblender.c (gblender_lookup, gblender_lookup_channel): Minor. 2015-12-05 Alexei Podtelezhnikov [graph] Unravel blending, part 2. * graph/gblender.c (gblender_reset_key, gblender_reset_channel_key): Set alpha grid values explicitly. 2015-12-03 Alexei Podtelezhnikov [graph] Unravel blending. * graph/gblender.c (gblender_reset_key, gblender_reset_channel_key): Entrust optimizations to modern compilers, remove unused variables. 2015-11-30 Werner Lemberg [graph] Initialize local variables after checking channel change. This fixes a crash if foreground color == background color. Problem reported by Alexei. * graph/gblender.h (GBLENDER_VARS): Split off initialization to... (GBLENDER_VARS_SET): ...this new macro. (GBLENDER_CHANNEL_VARS): Split off initialization to... (GBLENDER_CHANNEL_VARS_SET): ...this new macro. * graph/gblcolor.h, graph/gblhbgr.h, graph/gblhrgb.h, graph/gblvbgr.h, graph/gblvrgb.h: Updated. 2015-11-29 Alexei Podtelezhnikov * graph/gblender.c (gblender_clear): Fix typo. 2015-11-29 Alexei Podtelezhnikov * src/fttimer.c (main): Remove unused variable. 2015-11-28 Alexei Podtelezhnikov * src/ftcommon.c (FTDemo_Display_Clear): Speed up. 2015-11-28 Werner Lemberg * Version 2.6.2 released. ========================= Tag sources with `VER-2-6-2'. * README: Updated. * src/*.1: Updated. 2015-11-25 Alexei Podtelezhnikov [ftstring, ftview] Small clean-ups. * src/ftstring.c (event_lcdmode_change): Robustify the switch. * src/ftview.c (write_header): Ditto. 2015-11-25 Werner Lemberg * src/ftstring.c: Fix compilation warnings. 2015-11-24 Alexei Podtelezhnikov [ftstring] Enable sub-pixel rendering. * src/ftstring.c (event_lcdmode_change): New function. (Process_Event): New event to change LCD mode. (event_help): Offer it. (main): Select light LCD filter. 2015-11-22 Alexei Podtelezhnikov * src/ftstring.c (main): Move gamma curve in the background. 2015-11-22 Alexei Podtelezhnikov [ftstring] Enable changing display color. * src/ftstring.c (event_color_change): New function. (Process_Event) [grKeySpace]: New event to change color. (event_help): Offer it. (main): Updated. * src/ftstring.1: Updated. 2015-11-22 Alexei Podtelezhnikov [ftstring] Use shared `grSetGlyphGamma'. * src/ftcommon.h (FTDemo_String_Context): Remove `gamma_ramp'. * src/ftcommon.c (apply_gamma_ramp): Remove. (FTDemo_String_Draw): Do not apply gamma correction here. * src/ftstring.c (event_gamma_change): Call `grSetGlyphGamma' here. (main): Switch from gray to rgb24; update. 2015-11-22 Alexei Podtelezhnikov [ftstring] Remove gamma toggle. * src/ftstring.c (event_help, Process_Event): Updated. 2015-11-21 Alexei Podtelezhnikov Copy-paste typos. * src/ftstring.1: Updated. * src/ftstring.c: Updated. 2015-11-19 Alexei Podtelezhnikov Cosmetic improvements. * src/ftdiff.c (write_global_info): Do not display zero gamma. * src/ftgrid.c (event_gamma_change): Ditto. * src/ftview.c (write_header): Ditto. 2015-11-12 Alexei Podtelezhnikov * graph/gblender.c (gblender_reset_key): Fix typo. 2015-11-12 Alexei Podtelezhnikov Define and use GAMMA. * src/ftcommon.h (GAMMA): Define new macro. * src/ftdiff.c (adisplay_init): Use it. * src/ftgrid.c (grid_status_init): Use it. * src/ftstring.c (status): Use it. * src/ftview.c (status): Use it. 2015-11-11 Alexei Podtelezhnikov [ftdiff,ftgrid] Default to gamma = 1.8. * src/ftcommon.c (FTDemo_Display_New): Do not set gamma. * graph/grblit.c (gr_glyph_gamma): Updated. * src/ftdiff.c (adisplay_init): Updated. * src/ftgrid.c (grid_status_init): Updated. 2015-11-06 Alexei Podtelezhnikov [graph] Minor sRGB accuracy update. * graph/gblender.c (gblender_set_gamma_table): Updated. 2015-11-06 Alexei Podtelezhnikov [ftview,ftstring] Default to gamma = 1.8. * src/ftview.c (status): Updated. * src/ftstring.c (status, main): Updated. 2015-10-16 Werner Lemberg Don't use `aux' as a file name. This should be avoided under Windows. Problem reported by Dave Arnold . * src/aux.c, src/aux.h: Renamed to... * src/output.c, src/output.h: ... these file names. * Makefile, src/ftdump.c, src/ftgrid.c: Updated. 2015-10-04 Werner Lemberg * Version 2.6.1 released. ========================= Tag sources with `VER-2-6-1'. * README: Updated. * src/*.1: Updated. 2015-09-13 Werner Lemberg * Makefile (FT_H): Updated to recent directory changes (#45954). The patch is taken from the anonymous Savannah bug report. 2015-08-13 Werner Lemberg [ftcommon] Support named instances of GX variation fonts. * src/ftcommon.c (FTDemo_Install_Font): Add inner loop for named instances. 2015-08-05 Werner Lemberg [ftgrid] Avoid invalid left-shift of negative values. * src/ftgrid.c (grid_status_draw_outline): Don't use left-shift but multiplication. 2015-08-04 Werner Lemberg * src/ftmulti.c (main): Fix double-free in case of invalid font. 2015-07-08 Werner Lemberg [ftcommon] Improve loading of font collections. * src/ftcommon.c (FTDemo_Install_Font): Don't exit if first face of a font is invalid. Don't exit if we want outline fonts only and the first face isn't. Don't exit if there are problems with the cmap. In all three cases, simply skip the font face. 2015-06-07 Werner Lemberg * Version 2.6 released. ======================= Tag sources with `VER-2-6'. * README: Updated. * src/*.1: Updated. * Makefile: Omit a zero patch level in computation of `version'. 2015-06-06 Werner Lemberg [ftgrid] Key `D' now toggles display of point numbers. * src/ftgrid.c: Include FT_TRIGONOMETRY_H. (GridStatusRec): Add field `do_dotnumbers'. (grid_status_init): Updated. (grid_status_draw_outline): Implement point number display. (event_help): Updated. (Process_Event): Handle `D' key. (main): Updated. 2015-04-22 Werner Lemberg * src/ftdiff.c (process_event): Add missing `break' statement. 2015-04-21 Werner Lemberg [ftview] Key `w' now toggles warper (if compiled-in). * src/ftview.c (status): Add `warping' field. (event_help): Updated. (event_warping_change): New function. (Process_Event): Handle `w' key. (write_header, main): Updated. 2015-04-21 Werner Lemberg [ftgrid] Key `w' now toggles warper (if compiled-in). This replaces the no longer existing debugging hook with a generic solution that uses the `warping' auto-hinter module property. * src/ftgrid.c (_af_debug_disable_warper): Removed. (GridStatusRec): s/do_warp/warping/. (grid_status_init, grid_status_draw_outline, event_help): Updated. (event_warping_change): New function. (Process_Event): Handle `w', not `W', and use `event_warping_change'. (main): Updated. 2015-04-21 Werner Lemberg [ftdiff] Key `w' now toggles warper (if compiled-in). * src/ftdiff.c (render_mode_names): Updated. (ColumnStateRec): Add `warping' field. (render_state_init, render_state_draw, event_help): Updated. (process_event): Handle `w' key. 2015-04-19 Werner Lemberg [ftdiff] Correctly reload face after changing hinting engine. In most cases, calling `FT_Property_Set' acts globally on the FT_Library object. * src/ftdiff.c (RenderStateRec): Remove `need_rescale', since we always rescale now after reloading the face. Update all users. (render_state_set_face_index): New function. (render_state_set_file): Remove `idx' argument. Instead, (re)load font with index `state->face_index'. (render_state_draw): Call `render_state_set_file'. (event_change_face_index): New function. (process_event): s/render_state_set_file/event_change_face_index/. (main): Updated. 2015-04-18 Werner Lemberg [ftgrid] Show advance width. * src/ftgrid.c (grid_status_draw_outline): Display vertical line at advance width position. 2015-04-16 Werner Lemberg [ftgrid] Key `W' now toggles warper (if compiled-in). * src/ftgrid.c [FT_DEBUG_AUTOFIT]: New extern variable `_af_debug_disable_warper'. (GridStatusRec): Add `do_warp' member. (grid_status_init): Updated. (grid_status_draw_outline): Set `_af_debug_disable_warper'. (event_help): Updated. (Process_Event): Handle `W' key. 2015-04-16 Werner Lemberg [ftgrid] Make blue zone toggling actually work. * src/ftgrid.c (grid_status_draw_outline) [FT_DEBUG_AUTOFIT]: Set `_af_debug_disable_blue_hints'. 2015-04-16 Werner Lemberg * src/ftgrid.c (Process_Event) <' '>: Don't reset debugging flags. 2015-04-16 Werner Lemberg [ftgrid] Cycle through AA rendering modes with F5 and F6. * src/ftgrid.c (event_lcd_mode_change): New function. (Process_Event) [FT_DEBUG_AUTOFIT]: Enable debug stuff for light AA mode also. Handle `F5' and `F6' keys. (event_help): Updated. 2015-04-14 Werner Lemberg [ftgrid] Fix memory leak. * src/ftgrid.c (event_font_change): Free `status.mm' before calling `FT_Get_MM_Var' (again). 2015-04-14 Werner Lemberg [ftgrid] Show proper names for GX axes. * src/ftgrid.c: Include `aux.h', FT_SFNT_NAMES_H, and FT_TRUETYPE_IDS_H. (GridStatusRec): Add `axis_name' array. (event_font_change): Set GX axis name if possible. (write_header): Use `axis_name' if non-NULL. (main): Add clean-up code for `axis_name' array. 2015-04-14 Werner Lemberg [aux] Add functions for outputting strings. * src/aux.c (hexdigit): New static array. (put_ascii_string, put_ascii_string_size, put_unicode_be16_string, put_unicode_be16_string_size): New functions. (put_ascii, put_unicode_be16): Use new functions to implement it. * src/aux.h: Updated. 2015-04-14 Werner Lemberg Move some output functions to a separate file. * src/aux.c, src/aux.h: New files, holding `put_ascii' and `put_unicode_be16' from... * src/ftdump.c: ... this file, which now includes `aux.h'. * Makefile (COMMON_OBJ): Add `aux.c'. Fix rule. 2015-04-11 Werner Lemberg [ftbench] Check unscaled advance widths also. * src/ftbench.c (main) : Add test. 2015-04-05 Werner Lemberg [ftdump] Simplify code. * src/ftdump.c (put_unicode_be16_as_utf8): Fold into... (put_unicode_be16): This function, with an additional argument. Update all callers. 2015-04-03 Werner Lemberg [ftdump] Remove dead code. * src/ftdump.c (debug, trace_level): Remove. (usage): Remove #ifdef'ed code. (main): Don't handle obsolete options `-d' and `-l'. Remove #ifdef'ed code. 2015-04-03 Werner Lemberg [ftdump] Add option `-u' to emit data in UTF-8 encoding. * src/ftdump.c (utf8): New global variable. (usage): Updated. (put_unicode_be16): Only emit characters < 0x80 as-is. (put_unicode_be_as_utf8): New function. (Print_Sfnt_Names, Print_MM_Axes): Use it. (main): Handle new option `-u'. * src/ftdump.1: Updated. 2015-04-02 Werner Lemberg [ftmulti] Make the first six axes accessible. We now use keys F1-F6 and 1-6. F7 and F8 get its original function back (this is, adjusting the glyph index by 10). * src/ftmulti.c (MAX_MM_AXES): New macro. Replaces `T1_MAX_MM_AXIS' everywhere. (Render_All): Adjust vertical position depending on number of axes. (Help): Updated. (Process_Event): Handle new keys. (main): Use two lines for axes if we have more than three. 2015-04-01 Werner Lemberg [ftgrid] Fix minor memory leak. * src/ftgrid.c (GridStatusRec): Add `stroker' field. (grid_status_draw_outline): Updated. (main): Call `FT_Stroker_Done'. 2015-03-30 Werner Lemberg [ftdump] Show proper names for GX axes. * src/ftdump.c (Print_MM_Axes): Try to find and display English versions of the GX axis names (stored in the `name' table) instead of 4-letter tags. 2015-03-29 Werner Lemberg [ftgrid, ftmulti]: Handle GX fonts with more than 4 axes. ftgrid now handles up to 32 axes, while ftmulti will ignore all axes but the first four. * src/ftgrid.c (MAX_MM_AXES): New macro. (GridStatusRec): New field `used_num_axis'. (event_axis_change, event_font_change, Process_Event): Use it. * src/ftmulti.c (used_num_axis): New global variable. (Process_Event, main): Use it. 2015-03-29 Werner Lemberg [ftdump] Display info about MM axes. * src/ftdump.c: Include FT_MULTIPLE_MASTERS_H. (Print_MM_Axes): New function. (main): Use it. 2015-03-19 Werner Lemberg [ftdump] Various minor improvements. * src/ftdump.c (name_id): Handle WWS entries also. Return NULL for not pre-defined entries. (put_ascii): Display characters >= 0x80 as hex escape sequence. (Print_Sfnt_Names): Improve output. 2015-03-11 Werner Lemberg Update to latest FreeType library changes. * src/ftcommon.c: s/FT_XFREE86_H/FT_FONT_FORMATS_H/. (my_face_requester): s/FT_Get_X11_Font_Format/FT_Get_Font_Format/. 2015-03-07 Werner Lemberg * src/ftvalid.c: Various minor compiler warning fixes. 2015-03-07 Werner Lemberg * src/ftview.c: Various minor compiler warning fixes. * src/ftcommon.c, src/ftcommon.h (FTDemo_Draw_Index): Change type of `gindex' to unsigned. 2015-03-07 Werner Lemberg * src/ftstring.c: Various minor compiler warning fixes. 2015-03-07 Werner Lemberg [ftmulti] Various minor compiler warning fixes. * src/ftmulti.c: Fix signedness issues. Add `static' keyword where appropriate. (CENTER_X, CENTER_Y, autorun, use_grays, raster_buff, FLOOR, CEIL, TRUNC): Removed. Unused. 2015-03-06 Werner Lemberg [ftgrid] Various minor compiler warning fixes. * src/ftgrid.c: Fix signedness issues. (event_axis_change, event_font_change): Avoid variable shadowing. (CEIL, X_TOO_LONG, Y_TOO_LONG): Removed. Unused. 2015-03-06 Werner Lemberg * src/ftgamma.c: Various minor compiler warning fixes. 2015-03-06 Werner Lemberg [ftcommon] Various minor compiler warning fixes. * src/ftcommon.c: Fix signedness issues. (my_face_requester): Remove dead code. (FTDemo_Install_Font): Protect against stream failure. (string_render_prepare): Add `static' keyword. * src/ftcommon.h: Updated. 2015-03-05 Werner Lemberg * src/ftdiff.c: Various minor compiler warning fixes. 2015-03-05 Werner Lemberg [graph] Many compiler warning fixes. * graph/*, graph/x11/*: Fix signedness issues. Unified handling of unused variables. Add `static' keyword where appropriate. Include `foo.h' into `foo.c' where appropriate. * graph/grobjs.c, graph/grobjs.h (grRealloc): Removed. Unused. 2015-03-04 Werner Lemberg [ttdebug] Various compiler warning fixes. * src/ttdebug.c: Decorate global variables/functions with `static'. Signedness fixes. (main): Protect various command line arguments against invalid values. 2015-03-04 Werner Lemberg * src/ftlint.c: Various minor compiler warning fixes. 2015-03-04 Werner Lemberg * src/ftdump.c: Various minor compiler warning fixes. 2015-03-04 Werner Lemberg [ftbench] Various compiler warning fixes. * src/ftbench.c: Decorate global variables/functions with `static'. Signedness fixes. (main): Protect various command line arguments against invalid values. 2015-03-03 Werner Lemberg [ftgrid] Add support for MM (and GX) fonts. F2 selects the axis, F3 and F4 change the axis value. The new code is adapted from `ftmulti.c'. * src/ftgrid.c: Include FT_MULTIPLE_MASTERS_H. (GridStatusRec): Add `mm', `design_pos', and `current_axis' fields. (grid_status_init): Initialize new fields. (event_help): Updated. (event_axis_change): New function. (event_font_change): Handle MM data. (Process_Event): Handle new keys. (write_header, main): Updated. 2015-03-03 Werner Lemberg [ftgrid] Less verbose header line. * src/ftgrid.c (BUFSIZE): New macro. (GridStatusRec, event_help): Use it. (write_header): Use it. Emit more compact header line. 2015-03-03 Werner Lemberg * src/ftmulti.c (main): Always display 1/100ths for axis values. 2015-03-03 Werner Lemberg [ftmulti] Use F1-F8 keys to handle four axes. Previously, we used F1 for help and F3-F8 for three axes. * src/ftmulti.c (Process_Event): Implement. (Help): Updated. 2015-03-03 Werner Lemberg Recommend `?' instead of `F1' for help. Usually, both `F1' and `?' map to the help screen. However, not all display managers provide the F1 key to the application. * src/ftdiff.c (main), src/ftgrid.c (main), src/ftmulti.c (main), src/ftstring.c (main), src/ftview.c (main): Apply. 2014-12-30 Werner Lemberg * Version 2.5.5 released. ========================= Tag sources with `VER-2-5-5'. * README: Updated. * src/*.1: Updated. * Makefile (dist): Fix typos. 2014-12-11 Werner Lemberg * Makefile (dist): Use older POSIX standard for `tar'. Apparently, BSD tar isn't capable yet of handling POSIX-1.2001 (contrary to GNU tar), so force the POSIX-1.1988 format. Problem reported by Stephen Fisher . 2014-12-06 Werner Lemberg * Version 2.5.4 released. ========================= Tag sources with `VER-2-5-4'. * README: Updated. * src/*.1: Updated. 2014-11-22 Werner Lemberg Show FreeType version in demo program help screens. * src/ftdiff.c (event_help), src/ftgrid.c (event_help), src/ftmulti.c (Help), src/ftstring.c (event_help), src/ftview.c (event_help): Implement it. 2014-05-11 Werner Lemberg Fix Savannah bug #42182. * src/ttdebug.c (main): Fix typos. 2014-03-06 Werner Lemberg * Version 2.5.3 released. ========================= Tag sources with `VER-2-5-3'. * README: Updated. * src/*.1: Updated. 2014-03-04 Werner Lemberg * Makefile (LINK_LIBS) [unixdev]: Don't use pkg-config for bzip2. Not all platforms have `bzip2.pc'. We also add `-lz' just for completeness. 2014-01-30 Werner Lemberg [ftbench] Allow `-s 0' for better testing of FT_LOAD_NO_SCALE. * src/ftbench.c (main) <'s'>: Don't alter value 0. Don't call `FT_Set_Pixel_Sizes' for size == 0. Don't call tests for size == 0 that need valid scaling factors. (usage): Updated. (benchmark): Return meaningful timer value for error-only calls. (test_embolden): Enable test. I think there is no longer a reason to not run it. * src/ftbench.1: Updated. 2014-01-28 Werner Lemberg * src/ftgrid.c (grid_status_rescale_initial): Avoid NaN values. Remove forgotten debug message. 2014-01-28 Werner Lemberg * graph/grblit.c (grBlitGlyphToBitmap): Don't crash on empty glyphs. Problem reported by Dave Arnold . 2014-01-03 Werner Lemberg [ftgrid] Show (some) blue zones. * src/ftgrid.c (af_glyph_hints_get_segment_offset): Update prototype. (GridStatusRec): New member `blue_color'. (grid_status_display): Change `on' color to red. Set `blue' color. (grid_hint_draw_segment): Show associated blue zones. (event_help): Updated. 2014-01-03 Werner Lemberg [ftgrid] Minor. * src/ftgrid.c (GridStatusRec): Rename `conic_color' to `off_color'. Remove unused `cubic_color' member. (grid_status_display, grid_status_draw_outline): Updated. 2013-12-22 Werner Lemberg * Makefile (LINK_LIBS) [unixdev]: Use pkg-config to get link flags. This corresponds to a similar change in current FreeType to link with HarfBuzz in development mode. 2013-12-08 Werner Lemberg * Version 2.5.2 released. ========================= Tag sources with `VER-2-5-2'. * README: Updated. * src/*.1: Updated. 2013-11-27 Werner Lemberg [ftgrid] Fix compilation in non-debug mode. * src/ftgrid.c: Guard autofit dump functions with FT_DEBUG_AUTOFIT clause. Update prototypes. (grid_hint_draw_segment): Guard with FT_DEBUG_AUTOFIT clause. (grid_status_draw_outline): Guard call to `grid_hint_draw_segment' with FT_DEBUG_AUTOFIT clause. (Process_Event) <'1'>, <'2'>, <'3'>: Don't mess around with trace levels, which should always stay internal to the FreeType library. Update calls to dump functions. 2013-11-25 Werner Lemberg * Version 2.5.1 released. ========================= Tag sources with `VER-2-5-1'. * README: Updated. * src/*.1: Updated. 2013-11-21 Werner Lemberg [ftgrid] Make keys `1', `2', and `3' work again. * src/ftgrid.c (Process_Event) <'1'>, <'2'>, <'3'>: Set `trace_afhints' trace level to value 7 temporarily since the autofit dumping functions use `FT_TRACE7' since 2012-07-06. 2013-11-21 Werner Lemberg [ftgrid] Fix compilation with C++. * src/ftgrid.c (_af_debug_*): Add `extern' keyword. 2013-11-20 Werner Lemberg Increase file path size. * src/compos.c (main), src/ftchkwd.c (main), src/ftdump.c (main), src/ftlint.c (main), src/ftmemchk.c (main), src/ftsbit.c (main), src/fttimer.c (main), src/fttry.c (main): Increase array size of `filename' and `alt_filename' to 1024. 2013-11-13 Werner Lemberg * Makefile (FT_H): Update to new header layout of FreeType. 2013-11-05 Werner Lemberg [ttdebug] Improve display of point tags. * src/ttdebug.c (old_tag_to_new): Removed, no longer used. (display_changed_points, show_points_table): Display tags with mnemonic characters instead of ORed numbers. (RunIns) <'h'>: Updated. 2013-11-05 Werner Lemberg [ttdebug] Enable debugging of composite glyphs (again). This was lost while improving key handling. * src/ttdebug.c (RunIns): Introduce variable `really_leave' to insert one stop before really leaving the current glyph range. Without that, inspecting the current data right after finishing the hinting of a subglyph wouldn't be possible. (main): Stay in loop even if `FT_Load_Glyph' returns zero. 2013-11-04 Werner Lemberg [ttdebug] Provide man page and compile program by default. * Makefile (EXES): Add `ttdebug'. * src/ttdebug.1: New file. 2013-11-01 Werner Lemberg [ttdebug] Make `B' emit a function backtrace. This needs the today's version of the FreeType library. * src/ttdebug (RunIns) <'h'>: Updated. <'B'>: Print backtrace. 2013-11-01 Werner Lemberg [ttdebug] Make `p' set a breakpoint at previous position. * src/ttdebug.c (RunIns): Store information about last position in `last_IP' and `last_range'. <'h'>, <'c'>, <'f'>, <'n'>, <'s'>: Updated. <'p'>: Set breakpoint at previous instruction. 2013-10-31 Werner Lemberg [ttdebug] Minor. * src/ttdebug.c: Make full-sentence messages where appropriate. (RunIns): Make help screen more compact vertically. 2013-10-31 Werner Lemberg [ttdebug] Make `b' set a breakpoint. * src/ttdebug.c (Breakpoint): New structure. (RunIns): Handle breakpoint. <'h'>, <'c'>, <'f'>, <'n'>: Updated. <'b'>: Set breakpoint. 2013-10-31 Werner Lemberg [ttdebug] Improve help; add key `h' to show it. * src/ttdebug.c (RunIns) <'?'>: Update and redesign help screen. <'h'>: Same as key `?'. (main): Show version string and help info at start-up. 2013-10-31 Werner Lemberg [ttdebug] Make key `R' restart the debugger. * src/ttdebug.c (Restart): New macro. (RunIns) <'Q'>: Set `pedantic_hinting' flag. <'R'>: Set error to `Restart'. (main): Add loop. 2013-10-30 Werner Lemberg [ttdebug] Make key `f' finish current function. Change old `f' key to `F'. * src/ttdebug.c (RunIns) <'f'>: Renamed to ... <'F'>: ... this. <'f'>: Loop until current function is finished. <'?'>: Updated. 2013-10-28 Werner Lemberg Add manual pages. Originally contributed (but heavily modified) by Nis Martensen . * src/ftbench.1, src/ftdiff.1, src/ftdump.1, src/ftgamma.1, src/ftgrid.1, src/ftlint.1, src/ftmulti.1, src/ftstring.1, src/ftvalid.1, src/ftview.1: New files. 2013-10-28 Werner Lemberg [ftbench, ftmulti, ftvalid] Improve and correct usage output. This commit also changes key mappings in ftvalid ('L' -> 'l', 'v' -> 'V'), adds option -v to display the version, and removes dead code. * src/ftbench.c (bench_desc): Fix typo. * src/ftmulti.c (usage): Do it. * src/ftvalid.c (validators, print_usage): Do it. (main): Updated. 2013-10-27 Werner Lemberg * src/ttdebug.c (main, RunIns): Fix memory leaks. 2013-10-26 Werner Lemberg [ttdebug] Display storage are data; key 'S' shows all of them. * src/ttdebug.c (Storage): New structure. We need to handle storage area data specially since we have to make a distinction between initialized and uninitialized values. (handle_WS): New function. Since it is not necessary for the bytecode interpreter to trace whether a value is uninitialized or not, we have to do it manually right before every debugging step. (RunIns): After executing a step, storage area data different to before is displayed. <'?'>: Help updated. <'S'>: Show storage area data. <'c'>, <'s'>, <'n'>: Call `handle_WS'. 2013-10-26 Werner Lemberg [ttdebug] Fix code range detection. * src/ttdebug.c (RunIns): The `code_range' string identifies the code range where `RunIns' has been called, so it's best to use it throughout the code for this purpose. <'C'>, <'P'>, <'S'>: Updated accordingly. (show_points_table): Updated accordingly. 2013-10-25 Werner Lemberg [ttdebug] Display CVT data; key `C' shows all Control Values. * src/ttdebug.c (RunIns): New array `save_cvt'. After executing a step, CVT data different to before is displayed. <'C'>: Show CVT data. <'?'>: Help updated. 2013-10-25 Werner Lemberg [ttdebug] Change some key assignments from lowercase to uppercase. * src/ttdebug.c (RunIns) <'v'>: Use 'V' instead. <'g'>: Use 'G' instead. <'p'>: Use 'P' instead. <'t'>: Use 'T' instead. <'q'>: Use 'Q' instead. <'?'>: Help updated. 2013-10-25 Werner Lemberg * src/ttdebug.c (RunIns) <'n'>: Handle ranges correctly. 2013-10-16 Werner Lemberg * src/ttdebug.c (RunIns): Handle `Enter' key correctly. 2013-10-16 Werner Lemberg [ttdebug] Display twilight data; key `t' shows twilight point table. * src/ttdebug.c (display_changed_points, show_points_table): Pass flag for twilight zone and handle it accordingly. (RunIns): Track twilight data. Handle key `t'. Update help. 2013-10-16 Werner Lemberg [ttdebug] Some refactorization. * src/ttdebug.c (display_changed_points, show_points_table): New functions, extracted from... (RunIns): ... this one. 2013-10-16 Werner Lemberg * src/ttdebug.c: s/save/save_pts/. 2013-10-16 Werner Lemberg [ttdebug] Display improvements. * src/ttdebug.c (exec): Removed, unused. (RunIns): Increase size of `temp' buffer. Display negative hex numbers. Correctly display hex numbers with more than 4 digits. (RunIns) <'g'>: Display interpreter version. 2013-10-09 Werner Lemberg * src/ftview.c (Render_Waterfall): Avoid `%n' in `snprintf'. MSVC disables this by default, and compilation would fail otherwise. 2013-09-28 Dave Arnold * src/ftdiff.c (Process_Event) <'H'>: Fix typo. If FT_DEBUG_AUTOFIT is false, then the command `H' had a side-effect of decrementing the glyph index. 2013-09-23 Werner Lemberg [ftdiff] Improve text display at small sizes. * src/ftdiff.c (render_state_draw): Loop over the text. This also avoids problems if the .notdef character has zero width (for whatever reasons). 2013-07-21 Behdad Esfahbod * src/ftcommon.c (FTDemo_Index_To_Bitmap): Add BGRA support. 2013-07-21 Werner Lemberg * graph/rules.mk (GRAPH_H): Add missing files. 2013-07-21 Behdad Esfahbod * src/ftcommon.c (FTDemo_Index_To_Bitmap): Remove unneeded code. 2013-07-21 Behdad Esfahbod [graph] Fix BGRA blending. * graph/gblbgra.h: Simplify and correct blending operation. 2013-07-20 Werner Lemberg Fix Savannah bug #39537. */* s/FALSE/0/, s/TRUE/1/. 2013-07-20 Werner Lemberg Improve font loading. In particular, avoid a crash in ftgrid for fonts without outlines. * src/ftcommon.c (FTDemo_Install_Font): Provide argument to load fonts with outlines only. * src/ftcommon.h, src/ftview.c, src/ftstring.c: Updated. * src/ftgrid.c (main): Updated. Emit warning message for skipped fonts. 2013-07-05 Werner Lemberg [ftbench] Be more verbose in reporting results. * src/ftbench.c (benchmark): Indent trace output. (usage): Minor improvement. (main): Add some option value guards. Print information on test setup. 2013-07-02 Werner Lemberg [ftbench] Improve `usage' text. * src/ftbench.c (default_hinting_engine, default_interpreter_version): New global variables. (usage): Improve text for `-H' and `-f'. (main): Updated. 2013-06-26 Werner Lemberg [ftgrid] Implement CFF and TTF engine change support. Key `H' toggles this. * src/ftgrid.c: Include FT_MODULE_H, FT_INTERNAL_OBJECTS_H, FT_INTERNAL_DRIVER_H, FT_CFF_DRIVER_H, and FT_TRUETYPE_DRIVER_H. (N_CFF_HINTING_ENGINES): Define macro. (GridStatusRec): Add `cff_hinting_engine' and `tt_interpreter_version'. (event_help): New layout similar to ftview. (event_cff_hinting_engine_change, event_tt_interpreter_version_change): New functions. (Process_Event): Extend handling of `H' key. (main): Get default properties of CFF and TTF drivers. 2013-06-26 Werner Lemberg * src/ftview.c (event_help): Mention `q' and `ESC' keys. 2013-06-19 Werner Lemberg * Version 2.5.0 released. ========================= Tag sources with `VER-2-5-0'. * README: Updated. 2013-06-12 Werner Lemberg [ftbench] Allow arbitrary sizes. * src/ftbench.c (main): Remove size limit. 2013-06-10 Werner Lemberg [ftview] Use key `K' for toggling small cache. Key `C' is already in use. * src/ftview.c (Process_Event) <'C'>: Replace with... <'K'>: This key. Add missing `break'. (event_help): Updated. 2013-06-09 Werner Lemberg [ttdebug] Add command `f' to select number format. * src/ttdebug.c (use_float): New global variable. (RunIns): Add `f' key to toggle between floating and fixed point number formats. Update all affected print commands. 2013-06-09 Werner Lemberg [ttdebug] Add command `l', improve help and output. * src/ttdebug.c (RunIns): Display message if entering a new code range. Improve output of `?' and `p' keys. Add `l' key to show last bytecode instruction. 2013-06-09 Werner Lemberg [ttdebug] Add command line option `-H' to select hinting engine. * src/ttdebug.c: Include FT_TRUETYPE_DRIVER_H. (default_version, alternative_version): New global variables. (Usage): Updated. (main): Handle option `-H'. 2013-06-09 Werner Lemberg [ftview] Fix cache handling. * src/ftview.c (event_cff_hinting_engine_change, event_tt_interpreter_version_change): Reset the cache to flush the glyph image cache. Otherwise, the cache lookup functions get confused since info about module properties is not stored in the glyph cache nodes. 2013-06-03 Werner Lemberg [ftview, ftdiff, ftbench] Update CFF and TT property handling. * src/ftbench.c (main): Make option `-H' use the non-default properties and warning if there is a problem. * src/ftdiff (render_state_init): At startup, use default properties. (process_event) <'H'>: Do nothing if non-default `hinting-engine' property is not available. * src/ftview.c (event_cff_hinting_engine_change): Do nothing if non-default `hinting-engine' property is not available. (Process_Event) <'H'>: Updated. (main): At startup, use default properties. 2013-05-22 Behdad Esfahbod Add support for color glyphs. In ftview, key `c' toggles color, while use of sbits cache is now mapped to key `C'. The premultiplied bgra blending is still off. * graph/gblany.h (_gblender_blit_bgra_): New template. * graph/graph.h (grPixelMode): Add gr_pixel_mode_bgra. * graph/gblblit.h (GBlenderSourceFormat): Add GBLENDER_SOURCE_BGRA. * graph/gblblit.c (gblender_blit_init): Handle GBLENDER_SOURCE_BGRA. * graph/grblit.c (grBlitGlyphToBitmap): Updated. * graph/gblbgra.h: New header file. * src/ftcommon.h (FTDemo_Handle): New member `color'. * src/ftcommon.c (FTDemo_New, FTDemo_Update_Current_Flags): Updated. (FTDemo_Glyph_To_Bitmap): Handle FT_PIXEL_MODE_BGRA. * src/ftview.c (Process_Event) <'c'>: Handle color. <'C'>: Handle sbits cache. (help): Updated. (write_header): Updated. * Makefile (LINK_LIBS): Add -lpng. 2013-05-17 Werner Lemberg [ftview, ftdiff, ftbench] Support `interpreter-version' property. * src/ftbench.c: Include FT_TRUETYPE_DRIVER_H. (usage): Updated. (main): Update `-H' option. * src/ftdiff.c: Include FT_TRUETYPE_DRIVER_H. s/hinting_engine/cff_hinting_engine/. (ColumnStateRec): Add `tt_interpreter_version' member. (render_state_init, render_state_draw): Updated. (event_help): Updated. (process_event) <'H'>: Handle new property. * src/ftview.c: Include FT_TRUETYPE_DRIVER_H. s/hinting_engine/cff_hinting_engine/. s/HINTING_ENGINES/CFF_HINTING_ENGINES/. (status): Add `tt_interpreter_version' member. (event_tt_interpreter_version_change): New function. (Process_Event) <'H'>: Use it. (write_header): Updated. (main): Set default value for `interpreter-version'. 2013-05-13 Sebastien Bacher * src/ftview.c (write_header): Fix uninitialized variables. 2013-05-08 Werner Lemberg * Version 2.4.12 released. ========================== Tag sources with `VER-2-4-12'. * README: Updated. * src/x11/grx11.c: s/read/lread/, s/write/lwrite/ where appropriate to avoid variable shadow warnings. 2013-05-03 Werner Lemberg [ftbench] New command line option `-H' to select Adobe's CFF engine. * src/ftbench.c: Include FT_MODULE_H and FT_CFF_DRIVER_H. (main): Handle `H' key. (usage): Updated. 2013-04-27 Werner Lemberg [ftview] Don't show encoding in `text' and `waterfall' modes. Those two modes always use UTF-8 (or rather, they use FTDemo_Get_Index). * src/ftview.c (write_header): Implement it. 2013-04-26 Werner Lemberg [ftview] Allow engine change for non-hinted modes also. This is useful to demonstrate the stem darkening of the Adobe's CFF engine. * src/ftview.c (Process_Event) <'H'>, (write_header): Adjust conditions. 2013-04-23 Werner Lemberg [ftview] Improve waterfall and text mode. * src/ftview.c (status): New member `topleft'. (Text): Convert string to UTF-8 encoding. Now the whole string is displayed again. (Render_Stroke, Render_Slanted, Render_Embolden, Render_All): Set `status.topleft' to the first offset which gets really displayed. (Render_Text, Render_Waterfall): Set `status.topleft' to the first offset which gets really displayed. If characters from the `Text' string have been exhausted, start again from the beginning. (write_header): Always assume UTF-8 encoding for displaying header in `text' and `waterfall' modes. 2013-04-23 Werner Lemberg [ftview] Rename some variables. * src/ftview.c (status): s/font_index/font_idx/. s/Num/offset/. s/Fail/num_fails/. s/fw_index/fw_idx/. Update all callers. (Render_Stroke, Render_Slanted, Render_Embolden, Render_All, Render_Text, Render_Waterfall): s/first_index/offset/. (event_index_change): s/old_Num/old_offset/. (write_header): s/gindex/glyph_idx/. 2013-04-20 Werner Lemberg [ftdiff] New `x' key to toggle layout modes. (cbox vs. adv. width). Using the advance width is the new default. * src/ftdiff.c (ColumnStateRec): New member `use_cboxes'. (render_state_init): Updated. (render_state_draw): Use advance width instead of the maximum x value of the cbox if `use_cboxes' is set to 0. (event_help): Updated. (process_event): Handle `x' key. 2013-04-18 Werner Lemberg [ftdiff] Implement key `H' to select CFF hinting engine. * src/ftdiff.c: Include FT_CFF_DRIVER_H. Include FT_MODULE_H, FT_INTERNAL_OBJECTS_H, and FT_INTERNAL_DRIVER_H. (HINTING_ENGINE_MAX): New macro. (ColumnStateRec): New member `hinting_engine'. (render_state_init): Updated. (render_state_draw): Select hinting engine. Display hinting engine if we have CFF font. (event_help): Updated. (process_event): Handle `H' key. * Makefile (ftdiff.$(SO)): Enable inclusion of internal header files. 2013-04-17 Werner Lemberg Support display of no anti-aliasing, no hinting. * src/ftcommon.c (FTDemo_Update_Current_Flags): Handle this by setting FT_LOAD_MONOCHROME for this combination. 2013-04-17 Werner Lemberg [ftview] Be more intelligent in updating the display. This improves readability of tracing messages. * src/ftview.c (event_bold_change, event_change_radius, event_slant_change, event_size_change, event_index_change, event_font_change): Return update status. (Process_Event): Update display only if an event causes a change. 2013-04-17 Werner Lemberg [ftview] Minor GUI improvements. * src/ftview.c (event_hinting_engine_change, event_render_mode_change): Simplify. (Process_Event): Make keys `A'-`F' work only if AA is active. Disable keys `f' and `H' if in light hinting mode. (write_header): Ditto for header messages. 2013-04-17 Werner Lemberg [ftview] Key `H' should be active only if we have a CFF. * src/ftview.c (Process_Event): Do it. 2013-04-13 Werner Lemberg [ftview] Add keys `A'-`F' to select LCD mode. * src/ftview.c (event_help): Updated and rewritten to provide a two-column layout. (Process_Event): Handle `A'-`F'; former key `F' is now mapped to `L'. 2013-04-13 Werner Lemberg [ftview] Key `H' switches CFF hinting engines. * src/ftview.c: Include FT_MODULE_H, FT_INTERNAL_OBJECTS_H, FT_INTERNAL_DRIVER_H, and FT_CFF_DRIVER_H. (N_HINTING_ENGINES): New macro. (status): New member `hinting_engine'. (event_help): Updated. (event_hinting_engine_change): New function. (Process_Event): Handle `H' key. (main): Set default CFF engine. 2013-04-21 Werner Lemberg [graph/x11] Set _NET_WM_PID property. * graph/X11/x11/grx11.c: Include `sys/types.h', `unistd.h', and `XAtom.h'. (gr_x11_surface_init): Get process ID and set _NET_WM_PID property. 2013-03-27 Werner Lemberg Makefile (COMPILE): Add `CPPFLAGS'. Two reasons: (a) for orthogonality with freetype.mk (b) users can pass additional stuff to the compiler 2013-03-24 Werner Lemberg [ftview] Improve rendering mode switching. * src/ftview.c (status): Add `update' field. (Process_Event): Set `update' to 1 only if we really have to do an update. (main): Updated. 2013-03-24 Werner Lemberg [ftview] Use `l' and `k' keys instead of `L' and `K'. * src/ftview.c (event_help, Process_Event): Implement it. 2013-03-24 Werner Lemberg Don't try to handle rendering precision. This is a non-functional remnant of FreeType 1. All font drivers using B/W rendering activate this at ppem < 24. * src/ftcommon.h (FTDemo_Handle): Remove `low_prec' field. * src/ftcommon.c (FTDemo_New): Updated. * src/ftmulti.c (low_prec): Removed. (Help, Process_Event): Updated. * src/ftstring.c (event_help, Process_Event): Updated. * src/ftview.c (event_help, Process_Event, write_header): Updated. 2013-03-17 Werner Lemberg [ftview] Remove options -d and -L. Not documented and no longer working. This functionality is now available via FreeType's FT2_DEBUG environment variable. * src/ftview.c (status): Remove `debug' and `trace_level'. (parse_cmdline, main): Updated. 2013-03-17 Werner Lemberg [ftview] Remove option -D. This no longer works because the used cache values are now internal. * src/ftview.c (status): Remove `dump_cache_stats'. (usage, parse_cmdline, main): Updated. 2013-02-16 Alexei Podtelezhnikov [ftbench] Make BBox test harder. Rotating an outline puts more off-points outside of its bounding box. * src/ftbench.c: Include FT_OUTLINE_H. (test_get_bbox): Rotate outline by 30 degrees. 2013-02-12 Werner Lemberg [ftbench] Add test for `FT_Outline_Get_BBox'. * src/ftbench.c: Include FT_BBOX_H. (FT_BENCH_GET_BBOX): New enumeration value. (bench_desc): Updated. (test_get_bbox): New function. (main): Handle FT_BENCH_GET_BBOX. 2013-02-08 Werner Lemberg Implement `-v' to show version. Rename ftdump's `verbose' option to `-V'. Beautify and harmonize usage strings. * src/ftbench.c (bench_desc): Improve. (usage): Updated. (main): Handle `-v'. * src/ftdiff.c (usage): Updated. (render_state_init): Pass `library' argument. Move FreeType initialization to... (main): Here. Handle `-v'. * src/ftdump.c (usage): Updated. (main): Handle `-v', rename old `-v' to `-V'. * src/ftmulti.c (usage): Updated. (main): Handle `-v'. * src/ftgrid.c, src/ftstring.c, src/ftview (usage): Updated. (parse_cmdline): Handle `-v'. (main): Updated. 2013-02-08 Werner Lemberg [ftdiff] Simplify option handling. * src/ftdiff.c (get_option_arg): Removed. (main): Use `getopt'. 2013-02-08 Werner Lemberg * src/ftcommon.c, src/ftcommon.h (FTDemo_New): Take no parameter. * src/ftgrid.c, src/ftstring.c, src/ftview.c: Updated. 2013-02-06 Werner Lemberg [ttdebug] Remove options `-n' and `d'; add `-v' to show version. * src/ttdebug.c: Include `common.h'. (Panic): Renamed to... (Abort): This to avoid name clash. (dump_mode, non_interactive_mode): Removed. Unused. (main): Use `getopt'. Implement `-v' to show FreeType version. (Usage): Updated and synchronized with other usage messages from FreeType demo programs. * Makefile (ttdebug$E): Updated to use `common.c'. 2013-02-06 Werner Lemberg [ttdebug] Make `q' work correctly. * src/ttdebug.c (Quit): New macro. (RunIns, main): Handle `Quit'. 2013-02-06 Werner Lemberg * src/ttdebug.c (RunIns): Slightly beautify output. (Usage): Mention help key. 2013-02-06 Werner Lemberg [ttdebug] Make it work again (partially). Since we now have lazy execution of the `prep' bytecode, the old ttdebug code no longer could debug it. The new code debugs `fpgm', `prep', and the glyph's bytecode in one run. To facilitate it, it also adds a new `c' key to continue to the next code range. * src/ttdebug.c (debug_coderange): Removed. (RunIns): Always run debugger. Report `end of program' only after glyph program. Update output of `?' key. Handle `c' key to loop until end of code range is reached. (Usage): Updated. (main): Don't handle negative glyph indices. 2013-02-06 Werner Lemberg * src/ttdebug.c: s/exc->/CUR./. 2013-02-05 Werner Lemberg * src/ttdebug.c (OpStr): Oops! Add commas back. 2013-02-05 Werner Lemberg [ttdebug] Fix compilation warnings. * src/ttdebug.c (Cur_U_Line): Use `CUR' macro. (RunIns): Use global `error' variable. Use a const `temp' pointer locally. (Usage): Fix declaration. 2013-02-05 Werner Lemberg * src/ttdebug.c: Formatting, improving messages. 2013-01-28 Werner Lemberg [ftview] Make waterfall display -m string. Also make leftArrow key and friends functional. * src/ftview.c (Text): Make it `const char*'. (Render_Waterfall): Add argument to pass first index. Use -m option if given, and handle it as UTF-8. (Render_Text, parse_cmdline, main): Updated. 2013-01-28 Werner Lemberg * src/ftview.c (write_header): Show rendering mode number. 2013-01-03 Werner Lemberg [ftdiff] Slightly redesign layout to display all options. Also some other, minor changes. * src/ftdiff.c: Include . (RenderStateRec): Remove `message' and `message0'. Update all users. (render_state_draw): Display one more line for status information. (write_message): Renamed to... (write_global_info): This. Also display family and style name; we thus no longer need to display the number of subfonts. Also display dpi, ppem, and gamma. (main): Slightly improve column layout. (event_help): Minor improvement. (adisplay_change_gamma): Use epsilons. (render_state_set_file): Don't loop around the start or end of the face list. Other FreeType demo programs don't do this either. 2013-01-03 Werner Lemberg [ftdiff] Store family and style name of loaded fonts. To be used in a following commit. * src/ftdiff.c (FontFaceRec): New members `family_name' and `style_name'. (render_state_set_files): Fill new FontFaceRec members. 2013-01-03 Werner Lemberg * src/ftdiff (event_help): Improve text. 2013-01-03 Werner Lemberg [ftgrid] Make it work again. * src/ftgrid.c (grid_status_init): Don't initialize variables related to `display'. Do this... (grid_status_display): ... in this new function instead. (main): Use new function to handle command line arguments before initializing the display. 2013-01-02 Werner Lemberg Increase line height in help texts. * src/ftview.c (event_help): Increase line height. Improve text. * src/ftdiff.c (event_help), src/ftgrid.c (event_help), src/ftmulti.c (Help), src/ftstring.c (event_help): Increase line height. 2013-01-02 Werner Lemberg [graph] Implement adjustable line height. * graph/grfont.c (gr_line_height): New global variable. (grSetLineHeight): New function. (grWrite): Use gr_line_height. * graph/grfont.h: Updated. 2013-01-02 Werner Lemberg * src/ftview.c (write_header): Improve displayed strings. 2013-01-02 Werner Lemberg [ftview] Better input key handling. * src/ftview.c (Process_Event): Don't handle key events if not in a mode where they change something visible. 2013-01-02 Werner Lemberg * src/ftdiff.c (render_state_set_files): Skip non-scalable fonts. 2013-01-02 Werner Lemberg * src/ftview.c (main) Remove redundant code. 2013-01-02 Werner Lemberg [ftview] Redesign layout. It now displays all options, not only the changes, in a structured way. * src/ftview.c (START_X, START_Y): New macros. (INIT_SIZE): Use them. (status): Remove `header' and `header_buffer' members. (Render_Waterfall): Use START_X and START_Y. (event_gamma_change, event_bold_change, event_radius_change, event_slant_change, event_render_mode_change, Process_Event): Don't set `status.header'. (write_header): Display all options. (main): Updated. 2012-12-31 Werner Lemberg Introduce a warn color. * src/ftcommon.h (FTDemo_Display): Add `warn_color' member. * src/ftcommon.c (FTDemo_Display_New): Initialize it. 2012-12-31 Werner Lemberg * src/ftdiff.c (render_state_draw, main): Use HEADER_HEIGHT. 2012-12-27 Werner Lemberg Increase header line distances. * src/ftgrid.c, src/ftview.c (HEADER_HEIGHT): Move to... * src/ftcommon.h: ... this file. Set it to value 12. 2012-12-27 Werner Lemberg * Makefile: Add dependencies on `ftcommon.h'. 2012-12-26 Werner Lemberg Implement -w and -h options to specify window width and height. * src/ftcommon.c (FTDemo_Display_New): Two new parameters to pass width and height. (DIM_X, DIM_Y): Moved to ... * src/ftcommon.h: ... this. * src/ftdiff.c (usage): Updated. (ADisplayRec): Add `width' and `height' elements. (adisplay_init): Two new parameters to pass width and height. (write_message): Updated. (main): Handle `-w' and `-h' options. * src/ftgamma.c (DIM_X, DIM_Y): Removed. * src/ftgrid.c (GridStatusRec): Add `width' and `height' elements. (grid_status_init): Updated. (usage): Updated. (parse_cmdline): Handle `-w' and `-h' options. (main): Updated. * src/ftmulti.c (DIM_X, DIM_Y): Use the same (new) values as in other demo programs. (width, height): New global variables. (Init_Display): Updated. (usage): Updated. (main): Handle `-w' and `-h' options. * src/ftstring.c (status): Add `width' and `height' elements. (usage): Updated. (parse_cmdline): Handle `-w' and `-h' options. (main): Updated. * src/ftview.c (status): Add `width' and `height' elements. (usage): Updated. (parse_cmdline): Handle `-w' and `-h' options. (main): Updated. 2012-12-20 Werner Lemberg * bin/.cvsignore: Renamed to... * bin/.gitignore: ... this. * Makefile (dist): Don't include `.mailmap' and `.gitignore' 2012-12-19 Werner Lemberg * Version 2.4.11 released. ========================== Tag sources with `VER-2-4-11'. * README: Updated. 2012-11-27 Werner Lemberg * src/ftdiff.c (usage): Updated. 2012-11-26 Werner Lemberg [ftdiff] Accept UTF-8 encoded input files. * src/ftdiff.c (default_text): Use `char*' instead of `unsigned char*'. (main): Ditto for `text' variable. (RenderStateRec): Ditto for `text' member. (render_state_draw): Ditto for `text' argument. Use `utf8_next' to parse UTF-8 encoded text. 2012-11-04 Werner Lemberg [ftdump] Improve output of cmap tables. * src/ftdump.c (Print_Charmaps): Indicate Unicode Variation Sequences. 2012-10-20 Werner Lemberg * src/ftdump.c: (main): Minor output formatting. 2012-09-01 Alexei Podtelezhnikov [ftview] Use pixel size calculation that works for bitmap fonts too. * src/ftview.c (Render_Stroke, Render_Embolden): Rely on the status point size and resolution to get the pixel size. 2012-08-19 Alexei Podtelezhnikov [ftview] Implement adjustable stroker radius. * src/ftview.c (status): New field 'radius'. (Render_Stroke): Updated. (Process_Event): Add the keys `r' and `R' to handle the change. (event_radius_change): Implement it. (event_help): Updated. 2012-08-18 Alexei Podtelezhnikov [ftview] Use more readable loop. * src/ftview.c (main): use do-while instead of for-break. 2012-07-20 Alexei Podtelezhnikov [ftview] Clean up the code. * src/ftview.c (Render_Slanted): Move the shear matrix setup out of the loop. * src/ftview.c (Render_Embolden): Move the emboldening strength calculation out of the loop. 2012-07-12 Alexei Podtelezhnikov [ftview] Further code homogenization. * src/ftview.c (Render_Stroke): Stroker constructor and destructor are moved to... * src/ftcommon.c (FTDemo_New, FTDemo_Done): Here. * src/ftcommon.h (FTDemo_Handle): New field `stroker'. 2012-07-11 Werner Lemberg Avoid crashes in case of failure. * src/ftcommon.c (FTDemo_Draw_Slot), src/ftgrid.c (grid_status_draw_outline), src/ftview.c (Render_Stroke): Only call `FT_Done_Glyph' in case of success. 2012-07-10 Alexei Podtelezhnikov [ftview] Clean up and homogenize the code. * src/ftview.c (Render_Stroke): Replace while-loop with for-loop. (Render_Slanted): Ditto. (Render_Embolden): Ditto. (Render_All): Ditto. (Render_Waterfall): Ditto. (Render_Stroke): Homogenize with other similar functions. (Render_Text): Code cleanup. (event_gamma_grid): Ditto. 2012-06-15 Werner Lemberg * Version 2.4.10 released. ========================== Tag sources with `VER-2-4-10'. * README: Updated. 2012-05-28 Alexei Podtelezhnikov [ftview] Implement handling of FT_Outline_EmboldenXY. * src/ftview.c (status): Replace `bold_factor' with `xbold_factor' and `ybold_factor'. (Render_Embolden): Updated. (Process_Event): Replacing handling of `e', `E' keys with `x', `X', `y', and `Y'. (event_bold_change): Implement it. (event_help): Updated. 2012-03-14 Alexei Podtelezhnikov [ftview] Improve spacing for bold rendering mode. * src/ftview.c (Render_Embolden): Fix algorithm to reduce spacing. 2012-03-08 Werner Lemberg * Version 2.4.9 released. ========================= Tag sources with `VER-2-4-9' (the previous commit has this tag). * README: Updated. 2012-03-03 Werner Lemberg [ftstring] Fix display of kern compare mode. * src/ftstring.c (main) : Fix scaling of `height'. 2012-03-03 Werner Lemberg Fix handling of track kerning. * src/ftcommon.c (string_render_prepare): Fix scaling for `FT_Get_Track_Kerning'. 2012-03-03 Werner Lemberg Remove unused function. * src/ftcommon.[ch] (FTDemo_Set_Current_Pointsize): Remove. 2012-03-02 Werner Lemberg Fix Savannah bug #33660. * src/ftcommon.c: Include `FT_XFREE86_H'. (file_suffixes): Remove. (my_face_requester): Check whether font driver is `Type 1' instead of relying on the file suffix. Additionally, prefer `.afm' over `.pfm'. (FTDemo_Install_Font): Don't try various suffixes. Allocate more memory for `font->filepathname' as needed by `my_face_requester'. * src/ftdiff.c: Include `ftcommon.h' and `common.h'. Remove declaration of `error' everywhere. (usage): Updated. Add argument for binary name. Update all callers. (event_help): Updated. * src/ftgrid.c (usage): Updated. * src/ftstring.c (event_help, usage): Updated. * src/ftview.c (usage): Updated. 2012-03-02 Werner Lemberg * src/ftstring.c: Remove redundant code; formatting. 2012-03-02 Werner Lemberg * src/ftdiff.c: Formatting. 2012-03-02 Werner Lemberg * src/ftgrid.c: Remove redundant code; formatting. 2012-03-02 Werner Lemberg * src/ftcommon.c: Remove dead code; formatting. 2012-02-13 Peter Grandi [ftview] Implement cycling backwards for rendering and LCD modes. * src/ftview.c (Process_Event): Handle keys `K' and `backspace'. (event_help): Updated. 2012-02-13 Werner Lemberg Fix X11 keyboard handling. * graph/grevents.h (grKey): Shift special keys to a higher range, otherwise it can happen that they are processed twice. For example, `grKeyBackSpace' also returns key code 8 under X11, and this was previously mapped to `grKeyF8'. 2011-12-07 Antoine Leca Fix printf specifications and parameters. * src/ttdebug.c (Cur_U_Line, RunIns): Use "%hu" for FT_UShort, "%ld" for FT_Pos; drop the "h" in "%hx" for FT_Byte parameters and cast the parameters to (unsigned) ("%hhx" is C99 only, and often unimplemented). Noticed by clang. 2011-12-02 suzuki toshiya Use $(LIBTOOL) to make graph.a, if it is defined. If configure script in FreeType2 library directory creates GNU Libtool, using it is better than using raw `ar'. For example, Mac OS X archive library is required to be processed by ranlib. See discussion in http://lists.gnu.org/archive/html/freetype-devel/2011-10/msg00034.html * graph/rules.mk: Change the object suffix $(SO) to $(O) for the sake of GNU Libtool. If $(LIBTOOL) is defined, use it to compile the objects and make the library. * graph/x11/rules.mk: Ditto. * graph/beos/rules.mk: Ditto. * Makefile: `clean' target erases the object, the library and GNU Libtool related files in .libs/ directory. 2011-11-15 Werner Lemberg * Version 2.4.8 released. ========================= Tag sources with `VER-2-4-8'. * README: Updated. 2011-10-18 Werner Lemberg * Version 2.4.7 released. ========================= Tag sources with `VER-2-4-7'. * README: Updated. 2011-08-14 Werner Lemberg Improve usage messages. This should fix Savannah bug #33660. * src/ftgrid.c, src/ftstring.c, src/ftview.c (usage): Reword and extend. 2011-07-29 Werner Lemberg * Version 2.4.6 released. ========================= Tag sources with `VER-2-4-6'. * README: Updated. 2011-06-24 Werner Lemberg * Version 2.4.5 released. ========================= Tag sources with `VER-2-4-5'. * README: Updated. 2011-06-01 Werner Lemberg Fix gcc 4.6 warnings. * graph/grblit.c (blit_gray_to_gray): Remove unused variables. (blit_gray_to_gray_simple): Declare and set `max' conditionally. * src/ftcommon.c (FTDemo_Index_To_Bitmap): Remove unused variable. * src/ftmulti.c (Render_All, Render_Text): Ditto. * src/ftview.c (INIT_SIZE, Render_Stroke, Render_Slanted, Render_Embolden, Render_All, Render_Text, Render_Waterfall): Ditto. 2011-05-01 Just Fill Bugs Werner Lemberg [ftgrid] Show autohinter segments. Toggle with key `s'. * src/ftgrid.c: Add declarations for `af_glyph_hints_get_num_segments' and `af_glyph_hints_get_segments_offset'. (GridStatus): Add `segment_color' and `do_segment'. (grid_status_init): Updated. (grid_hint_draw_segment): New function. (grid_status_draw_outline): Call it. (Process_Event) <'s'>: Toggle display of segment lines. (event_help): Updated. 2011-04-24 Werner Lemberg * src/ftgrid.c (event_grid_zoom): Fix status message. 2011-04-21 Werner Lemberg FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH is deprecated and ignored. * src/ftchkwd.c (check_face): Update load flags. * src/ftcommon.h (FTDemo_Handle): Remove `use_global_advance_width'. * src/ftcommon.c (FTDemo_New, FTDemo_Update_Current_Flags): Updated. * src/ftmulti.c (LoadChar): Update load flags. * src/ftdiff.c (ColumnStateRec): Remove `use_global_advance_width'. (render_state_init, render_state_draw): Updated. (process_event): No longer handle key `a'. (event_help): Updated. * src/ftview.c (Process_Event): No longer handle key `A'. (event_help): Updated. 2011-04-20 Werner Lemberg [ftgrid]: Prevent incorrect output of `1', `2', and `3' keys. * src/ftgrid.c (Process_Event) <'1', '2', '3'>: Ensure that hinting is active, otherwise old table data could be emitted. 2011-04-19 Werner Lemberg * Makefile (FT_INCLUDES): Simplify. 2011-04-18 Werner Lemberg [ftgrid]: Limit autofit control even more. * src/ftgrid.c (Process_Event) <'H', 'V', 'B'> [FT_DEBUG_AUTOFIT]: Limit visibility and improve status messages. (event_help): Updated. 2011-04-18 Werner Lemberg [ftgrid] Add forced autohinting and limit autofit dumping. * src/ftgrid.c (_af_debug): Remove, unused. (Process_Event) <'f'>: Toggle autohinting. [FT_DEBUG_AUTOFIT] <'1', '2', '3'>: Limit visibility and improve status messages. (event_help): Updated. (main): Updated. 2011-04-18 Werner Lemberg Honor DEVEL_DIR. * Makefile (FT_INCLUDES) [DEVEL_DIR]: Add $DEVEL_DIR. 2011-03-19 Werner Lemberg C++ compilation fixes. * src/ftcommon.c, src/ftdiff.c: `strrchr' returns `const char *'. * src/ftview.c (status): Fix initialization. 2011-01-30 Werner Lemberg Add flag `A' to ftview for toggling the global advance width flag. * src/ftcommon.h (FTDemo_Handle): New field `use_global_advance_width'. * src/ftcommon.c (FTDemo_New): Set it. (FTDemo_Update_Current_Flags): Handle it. * src/ftview.c (Process_Event): Handle key `A'. (event_help): Updated. 2010-12-31 Werner Lemberg * Makefile: Add -lbz2 for development builds. 2010-11-28 Werner Lemberg * Version 2.4.4 released. ========================= Tag sources with `VER-2-4-4'. * README: Updated. 2010-10-03 Werner Lemberg * Version 2.4.3 released. ========================= Tag sources with `VER-2-4-3'. * README: Updated. 2010-08-29 Steve Langasek Make `grKey' enum comprehensive for gcc 4.5 compatibility. * graph/grevents.h (grKey): Avoid the situation of trying to compare an enum variable with a value not included in that enum in a case statement. An enum needs to be declared to include the list of all possible values (which in the case of keypresses is quite a few), not just the most convenient ones. 2010-08-17 Werner Lemberg [ftbench] Add option `-i' to specify first used glyph index. * src/ftbench.c (first_index): New global variable. (test_load, test_load_advances, test_render, test_embolden, test_get_cbox, test_get_glyph, test_image_cache, test_sbit_cache, get_charset): Use it. (usage): Updated. (main): Handle `-i'. 2010-08-06 Werner Lemberg * Version 2.4.2 released. ========================= Tag sources with `VER-2-4-2'. * README: Updated. 2010-07-23 Werner Lemberg ftmulti: Oops! Patch has been applied incorrectly. * src/ftmulti.c (main): Really limit axis name length. 2010-07-19 Werner Lemberg * Version 2.4.1 released. ========================== Tag sources with `VER-2-4-1'. * README: Updated. 2010-07-17 Werner Lemberg ftmulti: Fix possible buffer overflow. Based on a patch from Marek Kašík . * src/ftmulti.c (main): Limit axis name length in `Header'. 2010-07-13 suzuki toshiya ftdump: Show language ID for all cmap subtables. * src/ftdump.c (Print_Charmaps): Print the language IDs obtained by FT_Get_CMap_Language_ID(). The language IDs is cast to FT_UInt, so broken IDs (> 0xFFFF) will not be shown correctly. 2010-07-12 Werner Lemberg * Version 2.4.0 released. ========================== Tag sources with `VER-2-4-0'. * README: Updated. 2010-06-28 Werner Lemberg ftbench: Fix suboptions of `-b'. * src/ftbench.c (bench_desc): Add missing description for FT_BENCH_LOAD_ADVANCES. 2010-06-07 Werner Lemberg Fix Savannah bug #30054. * src/ftdiff.c, src/ftgrid.c, src/ftmulti.c, src/ftstring.c, src/ftview.c: Use precision for `%s' where appropriate to avoid buffer overflows. 2010-04-14 Werner Lemberg ftdiff: Add support for LCD filter control. Key `l' cycles through the filter modes, `[' and `]' select the custom filter weight, `-' and `+' (or `=') adjust the selected filter weight. This is based on code written by Lifter . * src/ftdiff.c (ColumnStateRec): Add members for LCD filter control. (render_state_init): Updated. (render_state_draw): Add support for custom LCD filter. (event_help): Document new keys. Make help screen more compact. (process_event): Handle new keys. 2010-04-14 Werner Lemberg ftview: Add support for LCD filter control. Key `F' toggles custom LCD filter mode, `[' and `]' select the custom filter weight, `-' and `+' (or `=') adjust the selected filter weight. This is based on code written by Lifter . * src/ftview.c (INIT_SIZE, Render_Waterfall): Add space for a third header line. (status_): Add members for LCD filter control. (event_help): Document new keys. Make help screen more compact. (Process_Event): Handle new keys. Use FTC_Manager_RemoveFaceID to flush the bitmap caches, forcing a redraw. I'm not sure whether this is the right thing, but it seems to work... (write_header): Display custom filter weights. 2010-02-11 Werner Lemberg * Version 2.3.12 released. ========================== Tag sources with `VER-2-3-12'. * README: Updated. 2009-10-10 Werner Lemberg * Version 2.3.11 released. ========================== Tag sources with `VER-2-3-11'. * README: Updated. 2009-10-06 Werner Lemberg * Version 2.3.10 released. ========================== Tag sources with `VER-2-3-10'. * README: Updated. * Makefile (major, minor, patch): Fix regexp to allow more than a single digit. (dist): We now use git. 2009-07-30 Boris Letocha [graph] Fix rendering on Windows. * graph/win32/grwin32.c (gr_win32_surface_refresh_rectangle): Handle `gr_pixel_mode_gray' correctly. 2009-06-17 Werner Lemberg Reduce number of automatically compiled programs. Many GNU/Linux distributions install those programs, and most of them are completely useless or very specialized. * Makefile (LINK): Define. (EXES): Reduce list to retain only generally useful programs. (ftsbit): Comment out. Program doesn't compile (but may be useful). (ttdebug.o): Make it compile again. 2009-06-17 Werner Lemberg * Makefile: Handle `EXTRAFLAGS' for platform `unixdev' also. 2009-04-30 Werner Lemberg ftview: Make slant and boldness controllable. Keys `e' and `E' adjust emboldening, keys `s' and `S' the slant. * src/ftview.c (status): Add `bold_factor' and `slant' members. (Render_Slanted): Use `status.slant'. (Render_Embolden): Copy code from `FT_GlyphSlot_Embolden' and use `status.bold_factor'. (event_bold_change, event_slant_change): New functions. (Process_Event): Handle keys `s', `S', `e', and `E'. (event_help): Updated. 2009-04-26 Werner Lemberg * graph/grblit.c (blit_lcd8_to_24): Fix typo. Reported by suyu@cooee.cn. 2009-04-22 Werner Lemberg Fix crash in ftgrid. * src/ftgrid.c (grid_status_draw_outline): Handle return value of FT_Load_Glyph. 2009-03-12 Werner Lemberg * Version 2.3.9 released. ========================= Tag sources with `VER-2-3-9'. * README: Updated. 2009-03-10 Werner Lemberg * src/common.c (CONST): New macro, defined depending on __STDC__. Use it where necessary. 2009-03-10 Werner Lemberg Fix C++ compilation. * src/ftbench.c (test_load_advances): Use cast. * src/ftgrid.c: Protect `extern' declarations with `extern "C"'. 2009-03-03 Werner Lemberg Fix signedness issues. * src/ftcommon.c (FTDemo_String_Set): Fix signedness. Update callers. Include `common.h'. Use __STDC__ macro. * src/ftcommon.h (FTDemo_String_Set): Fix signedness. * src/common.h, src/common.c: Use __STDC__ macro. 2009-03-03 David Turner Add utf-8 support to ftview. Fixes Savannah BUG #18225. * src/common.h, src/common.c: Add `utf8_next' function. * src/ftcommon.c (FTDemo_String_Set), src/ftview.c (Render_Text): Use `utf8_next'. 2009-01-14 Werner Lemberg * Version 2.3.8 released. ========================= Tag sources with `VER-2-3-8'. * README: Updated. 2009-01-07 Werner Lemberg ftdiff: Add `a' key to toggle global advance width. * src/ftdiff.c (ColumnStateRec): Add `use_global_advance_width' field. (render_state_init): Updated. (render_state_draw): Control FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH. Update screen output. (event_help): Document `a' key. Sort output. (process_keys): Handle `a' key. Sort entries in `case' block. 2008-12-05 Werner Lemberg * src/ftbench.c: Remove #if FT_ADVANCES_H ... conditionals. 2008-09-02 David Turner * src/ftbench.c: Include FT_ADVANCES_H. (FT_BENCH_LOAD_ADVANCES): New enumeration value. (test_load_advances): New function. (main) : New case. 2008-06-29 Werner Lemberg * Version 2.3.7 released. ========================= Tag sources with `VER-2-3-7'. * README: Updated. 2008-06-10 Werner Lemberg * Version 2.3.6 released. ========================= Tag sources with `VER-2-3-6'. * README: Updated. 2008-05-18 Werner Lemberg * src/ftdiff.c (render_mode_names): Use better strings. 2008-05-13 Werner Lemberg * src/ftcommon.c (string_render_prepare): Always set extent in last slot. 2008-01-10 Allan Yang, Jian Hua - SH * graph/grfill.c: Include . 2007-12-29 Allan Yang, Jian Hua - SH Werner Lemberg * src/ftview.c: Implement slanting. 2007-08-08 Werner Lemberg * src/ftvalid.c (print_usage): Add option `-f'. 2007-08-08 George Williams * src/ftvalid.c (ot_table_spec): Handle `MATH' table also. (main): Add option `-f' to select font index. 2007-07-07 Werner Lemberg * src/ftview.c (parse_cmdline): Remove C++ compiler warning. * src/ftcommon.c (my_file_requester), src/ftgrid.c (grid_status_draw_grid, ft_outline_draw, ft_outline_new_circle, grid_status_draw_outline, _af_debug_hints), src/ftdiff.c (_render_state_rescale, render_state_set_files, render_state_set_file, adisplay_draw_glyph, adisplay_draw_text, event_help, event_change_gamma, process_event, write_message, main): Fix compilation with C++ compiler. 2007-07-02 Werner Lemberg * Version 2.3.5 released. ========================= Tag sources with `VER-2-3-5'. * README: Updated. 2007-06-19 Werner Lemberg * src/ftview.c (usage): Make it more readable. 2007-06-16 Werner Lemberg * src/ftpatentcheck.c: Renamed to... * src/ftpatchk.c: This. Minor fixes. * src/Jamfile (PROGRAMS), Makefile: Updated. 2007-06-10 David Turner Add the new `ftpatentcheck' program; it is a simple wrapper of the new FT_Face_CheckTrueTypePatents function. * src/ftpatentcheck.c: New file. * src/Jamfile (PROGRAMS), Makefile: Updated. 2007-06-09 Werner Lemberg * src/ftgrid.c (Process_Event): Assign usual actions to keys F7-F12. (event_help): Updated. (main): Don't expect a Unicode encoded font -- we are only working with glyph indices currently. 2007-06-01 Werner Lemberg * src/ftcommon.c (FTDemo_Index_To_Bitmap): Initialize `*x_advance'. 2007-05-28 David Turner * src/ftcommon.h: fix compilation warning * src/ftview.c: fix size bugs in waterfall mode 2007-05-11 David Turner * src/ftcommon.h, src/ftcommon.c, src/ftview.c, src/ftgrid.c, src/ftstring.c: adapt test programs to use the new FTC_ImageCache_LookupScaler and FTC_SBitCache_LookupScaler functions. This allows you to specify fractional pixel/point sizes on the command line (e.g. ftview 13.5 ~/fonts/*) 2007-05-09 Ryan Hill * Makefile: Fix rules for fttimer which doesn't use graphical output. Fix rule for ftdump to make it work with parallel builds. 2007-04-09 Werner Lemberg * Version 2.3.4 released. ========================= Tag sources with `VER-2-3-4'. * README: Updated. * src/ftdiff.c (process_event): Handle `?' key. 2007-04-04 Werner Lemberg * Version 2.3.3 released. ========================= Tag sources with `VER-2-3-3'. * README: Updated. 2007-04-03 Werner Lemberg * src/ftdiff.c (usage): Make message similar to other ftdemo programs. 2007-04-02 David Turner * graph/win32/grwin32.c (gr_win32_surface_init): Fix the Win32 window size computations to properly adjust border thickness and other extras. Fix by Sébastien Leix . * src/ftdiff.c (render_state_draw): Fix small bug that prevented unhinted rendering from working as expected with embedded bitmaps. (adisplay_init): Fix small bug that occurred when the call to grNewSurface() failed. Reported by Sébastien Leix . (usage): Move up in file. (FontFaceRec): New structure. (RenderStateRec): Integrate it. Update all users. (render_state_set_files, render_state_set_file): Handle all faces in a multi-face font file. (write_message): Handle multi-face font files. 2007-04-01 Werner Lemberg * src/ftdiff.c: Remove compiler warnings. Formatting. 2007-03-30 David Turner Change interface keys to allow you to change settings for a single column only. Press F1 for details. * src/ftdiff.c: Include FT_LCD_FILTER_H. (DisplayMode): Add DISPLAY_MODE_LCD. (Display_textFunc): New function pointer. (DisplayRec): Add it. (RenderMode): Replace it with... (HintMode): This. Update all users. (render_mode_names): New array. (ColumnStateRec): New struct. (RenderStateRec): Use it. (render_state_init): Initialize it. (render_state_draw): Pass index as argument. Use ColumnStateRec. Implement sub-pixel positioning for unhinted mode. Add column footers, showing current rendering state. (adisplay_draw_glyph): Handle DISPLAY_MODE_LCD. (adisplay_draw_text): New function. (event_help): Updated. (process_event): Add many keys to control rendering modes in more detail. (main): Updated. 2007-03-28 Werner Lemberg * src/ftdiff.c: Remove many compiler warnings. Fix some typos. Improve and fix help texts. Formatting. 2007-03-26 David Turner * src/ftdiff.c: New proofing program that displays text in three columns: bytecode-hinted, auto-hinted with rsb/lsb delta adjustments, and unhinted/subpixel-positioned. For comparison purposes. * Makefile, Jamfile: Add ftdiff. 2007-03-22 suzuki toshiya * src/ftvalid.c (print_usage): Fix a typo in the help message. 2007-03-09 Werner Lemberg * Version 2.3.2 released. ========================= Tag sources with `VER-2-3-2'. * README: Updated. 2007-02-14 David Turner * src/ttdebug.c: another refresh of the debugger. Minor improvements to be able to display more useful information during debugging 2007-02-12 David Turner * src/ttdebug.c: refresh the TrueType debugger code 2007-02-06 Alexei Podtelezhnikov * src/ftstring.c (event_render_mode_change): Fix spelling. 2007-01-31 Werner Lemberg * Version 2.3.1 released. ========================= Tag sources with `VER-2-3-1-FINAL'. * README: Updated. 2007-01-17 Werner Lemberg * Version 2.3.0 released. ========================= Tag sources with `VER-2-3-0-FINAL'. 2007-01-11 Masatake YAMATO * src/ftvalid.c (run_ot_validator, run_gx_validator, run_ckern_validator): Return FT_Error value instead of int value. (main): Return value returned from validator's run method. (report_result): Don't show `invalid' message if there is no target table. 2006-12-15 suzuki toshiya * mac/ftoldmac.c: Fix conditional macros of FSSpec/FSRef and QuickDraw/ATS functionalities. 2006-12-10 Werner Lemberg * Makefile (dist): Extract version number from freetype.h. 2006-11-15 David Turner * graph/x11/rules.mk (X11_PATH): Check /usr also. Search for `Xlib.h'. 2006-11-03 Werner Lemberg * src/ftgrid.c: Fix external function declarations. (event_help): Document `1', `2', and `3' keys. (grid_status_init, grid_status_rescale_initial, grid_status_draw_grid, grid_status_draw_outline, event_grid_reset): s/status/st/, s/error/err/ where appropriate to avoid shadowed variables. (GridStatusRec): Add `const' to `header'. Update all assignments. * Makefile: Add ftgrid. 2006-11-02 David Turner Add `B' key to ftgrid for toggling blue zone hinting. Add `1', `2', and `3' keys to dump hints for edges, segments, and points, respectively. * src/ftgrid.c: Add some externs. (_af_debug, _af_debug_disable_blue_hints, _af_debug_hints): New global variables. (GridStatusRec): Add `do_blue_hints' variable. (grid_status_init): Set do_blue_hints. (event_help): Updated. (Process_Event): Updated. (main): Set _af_debug. 2006-10-23 Zhe Su Add a benchmark for the emboldening algorithm. * src/ftbench.c: Include FT_SYNTHESIS_H. (FT_BENCH_EMBOLDEN): New enumeration value. (bench_desc): Add `Embolden'. (test_embolden): New function. (main): Add it. 2006-10-23 David Turner * src/ftgrid.c: Make the file compile again. 2006-10-11 suzuki toshiya * mac/ftoldmac.c (print_help): Renamed to... (print_help_and_exit): This. Update callers. Improve the conditionals in source to separate Toolbox QuickDraw and Carbon QuickDraw. (reserveToolBoxQuickDrawFontName, test_face_quickdraw, test_font_list_quickdraw_old, test_font_list_quickdraw, test_font_list_ats): Ditto. 2006-10-11 suzuki toshiya * mac/Makefile: Synchronize with the changes of top-level Makefile on 2006-02-01. 2006-09-27 David Turner Add support for LCD color filtering to ftview. * src/ftview.c: Include FT_LCD_FILTER_H. (status): Initialize it completely. (main): Call FT_Library_SetLcdFilter. * src/ftcommon.c (FT_Demo_Draw_Glyph): Renamed to... (FT_Demo_Draw_Glyph_Color): This. Add an argument to pass the colour. (FT_Demo_Draw_Glyph): New function, calling FT_Demo_Draw_Glyph_Color. * src/ftcommon.h (FT_Demo_Draw_Glyph_Color): New declaration. * src/ftgrid.c: New file, implementing an auto-fitter debugger. This is a very preliminary version. It only compiles with Jam at the moment, and you must have AF_DEBUG defined in your `src/autofit/aftypes.h' file to be able to link it. * src/Jamfile (GRAPHIC_PROGRAMS): Add ftgrid. * graph/graph.h (grFindColor, grFillHLine, grFillVLine, grFillRect): New declarations. * graph/grfill.c: New file which implements `grFillHLine', `grFillVLine', and `grFillRect'. They are mainly used by the auto-fitter debugger. * graph/grobjs.c (grFindColor): New function for the auto-fitter debugger. * graph/gblender.c (gblender_set_gamma_table): Set `gamma_ramp_inv[gmax]'. * graph/gblender.h (GBLENDER_STAT_HIT, GBLENDER_LOOKUP): Move them up in source file. * graph/Jamfile (graph_sources), graph/rules.mk (GRAPH_OBJS): Add `grfill'. 2006-09-11 David Turner Add support for OLPC swizzle simulation (must define SWIZZLE at compile time for this to work). * graph/grswizzle.c, graph/grswizzle.h: New files. * graph/grdevice.h (gr_swizzle_rgb24): Declare. * graph/Jamfile (graph_sources): Add `grswizzle'. * graph/win32/grwin32.c [SWIZZLE]: Include `grswizzle.h'. (gr_win32_surface_refresh_rectangle) [SWIZZLE]: Don't call gr_swizzle_rgb24 but gr_rect_swizzle_rgb24. Remove unused variables. 2006-09-01 David Turner Fix various bugs in the glyph blender/blitter. * graph/gblcolor.h, graph/gblhbgr.h, graph/gblhrgb.h, graph/gblvbgr.h, graph/gblvrgb.h: Fix off-by-one error. * graph/gblender.c (gblender_lookup): Fix computation of key->cells. (gblender_lookup_channel): Fix computation of key->index. * graph/win32/grwin32.c: Fix RGB/BGR ordering -- Win32 uses BGR ordering for its 24-bit bitmaps. (SWIZZLE): New macro (set to undefined). (grWin32SurfaceRec): Add `bgrBitmap'. [SWIZZLE]: Add `swizzle_bitmap'. (gr_win32_surface_done) [SWIZZLE]: Handle `swizzle_bitmap'. (gr_win32_surface_refresh_rectangle): Do conversion RGB->BGR. (gr_win32_surface_init): Initialize `bgrBitmap'. [SWIZZLE]: Initialize `swizzle_bitmap'. 2006-07-03 Masatake YAMATO * src/ftvalid.c (library): Move this global variable to main as a local variable. (print_usage): Introduce function static variable `library'. Add one argument for initializing the static variable. (main): Call print_usage with `library'. (main, else, parse_table_specs, find_validation_flag): Call print_usage with NULL. 2006-06-17 Masatake YAMATO * src/ftvalid.c: Rearrange code. (library): Make variable having global scope. (OT_VALIDATOR_SYMBOL): Remove. (GX_VALIDATOR_SYMBOL): Remove. (CKERN_VALIDATOR_SYMBOL): Remove. (validator_symbols): Remove. (ValidatorType::LAST_VALIDATE): New enum element used in loop sentinel. (ot_table_spec): Remove const modifier. (gx_table_spec): Remove const modifier. (Validator): New data type. (validators): New variable. (print_usage): Use validators. (report_header, report_result): Use validators. (is_ot_validator_implemented): New function. (is_gx_validator_implemented): New function. (is_ckern_validator_implemented): New function. (run_ckern_validator): Use validators. (main): Initialize library at the beginning of main. Use validators. Report messages and exit if the validator specified by command line is not implemented in libfreetype2 linked to ftvalid. Suggested by George Williams. 2006-06-09 Werner Lemberg * src/ftcommon.c (FTDemo_Install_Font): Fix index range for MS Symbol. 2006-06-07 Werner Lemberg * src/ftcommon.c (FTDemo_Display_Done, FTDemo_Done): Protect against NULL argument. * src/ftview.c (Fatal): New function to finalize FreeType library. This allows using FreeType's memory debugger in case of errors. s/PanicZ/Fatal/. 2006-06-04 David Turner * src/ftbench.c (main): fixed a subtle memory corruption bug at program exit. Reported by . 2006-05-21 Werner Lemberg * src/ftdump.c (Print_Type): Fix type for `module'. Reported by Mark Wang. 2006-05-17 Werner Lemberg * src/ftcommon.c, src/ftview.c [_WIN32]: Define `strcasecmp' and `snprintf'. 2006-05-17 yi luo * graph/win32/rules.mk: Add support for icl compiler. * src/ftcommon.c (strcasecmp): Define to `_stricmp' if not available. * src/ftview.c (snprintf): Define to `_snprintf' if not available. 2006-05-12 Werner Lemberg * Version 2.2.1 released. ========================= 2006-05-10 Werner Lemberg * Makefile (clean distclean) [no_config_mk]: Fix warning message. (dist): New target to build .tar.bz2, .tar.gz, and .zip bundles. Note that there are still many hard-coded version strings. 2006-05-06 Werner Lemberg * src/ftdump.c (main): Fix compiler warning. 2006-05-02 David Turner Add support for font preloading with the `-p' flag, simulating memory-mapped file access. * src/ftcommon.h (TFont): New elements `file_address' and `file_size'. (FTDemo_Handle): New element `preload'. (FTDemo_Set_Preload): New prototype. * src/ftcommon.c (my_face_requester): Use FT_New_Memory_Face for preloaded font. Handle PFM files also. (FTDemo_Install_Font): Handle preloading (this is, load font into a buffer). (FTDemo_Set_Preload): New function. * src/ftview.c (status): Add `preload' field. (parse_cmdline): Handle `-p' command line option. (usage): Updated. (main): * src/ftdump.c (main): Add glyph count dump. 2006-04-26 David Turner * Version 2.2 released. ======================= 2006-04-24 Werner Lemberg * src/ftview.c (Render_Stroke): Update parameters in call to FT_Stroker_New. 2006-03-20 David Turner Disable cache statistics dump, since the cache internals are not available anymore. Rename `-l' to `-L'. Add new command line options `-m text' and `-l render_mode'. * src/ftview.c (status): Add member `lcd_mode'. (Render_Text): Compensate the additional empty pixels inserted by Draw_Index. Handle number of glyph indices better. (parse_cmdline): Handle `-m' and `-l'. Updated. (usage): Updated. (main): Handle `status.lcd_mode'. Updated. Print cache statistics only conditionally (for FreeType versions lower than 2.2). 2006-03-02 Chia-I Wu * src/ftcommon.c (string_render_prepare): Fix a possible crash. 2006-02-28 suzuki toshiya * Makefile: include modules.cfg to reflect module configuration, and ftvalid is built when required stubs (ftgxval and ftotval) are built in libfreetype. 2006-02-27 suzuki toshiya * mac/ftoldmac.m68k_far.make.txt, mac/ftoldmac.ppc_classic.make.txt: Update to new header inclusion introduced on 2006-02-16. 2006-02-27 Chia-I Wu * src/ftcommon.c (my_face_requester): Attach the AFM only for PFA and PFB. 2006-02-25 Werner Lemberg * src/ftbench.c, src/ftcommon.c, src/ftvalid.c: Add proper casts where necessary to allow compilation with C++. Other minor fixes to remove compiler warnings. 2006-02-01 Werner Lemberg * Makefile (PLATFORM): Define to `unixdev' if PLATFORM=unix and DEVEL_DIR is defined. (BIN_DIR, OBJ_DIR): Replaced with... (BIN_DIR_2, OBJ_DIR_2): New variables, set with `?='. Update all callers. (BIN_DIR): Set also. (COMPILE): Add definition for FT_CONFIG_MODULES_H since we always build with an uninstalled FreeType version. (ftdump.$(SO), ftvalid.$(SO), ftview.$(SO)): Add -DFT2_BUILD_LIBRARY since these programs use internal headers. * graph/rules.mk, graph/*/rules.mk: s/OBJ_DIR/OBJ_DIR_2/. * src/ftcommon.c (string_render_prepare): Fix compiler warnings. 2006-01-16 Chia-I Wu Add support for track kerning and a new rendering mode for kerning comparison to ftstring. * src/ftcommon.c (my_face_requester): Try to attach the file having the same name as the font, but with suffix `.afm'. (FTDemo_New): Updated. (FTDemo_String_Set_Kerning, FTDemo_String_Set_Vertical): Removed. (string_load): Rewritten. (string_render_prepare): New function. (FTDemo_String_Draw): Rewritten to have more flexibility. For example, we can now draw the string twice with different kerning modes without reloading the glyphs. * src/ftcommon.h (TGlyph): Add more data, mainly taken from FTDemo_Handle structure. (KERNING_DEGREE_XXX): New enumerations. (FTDemo_String_Context): New structure. (FTDemo_Handle): Updated. (FTDemo_String_Set_Kerning, FTDemo_String_Set_Vertical): Removed. (FTDemo_String_Draw): Updated. * src/ftstring.c: Updated along with many cleanups. (CELLSTRING_HEIGHT): New macro. (RENDER_MODE_XXX): New enumeration values. (status): Add more fields. (event_help, event_angle_change): Updated. (event_render_mode_change): New function. (Process_Event): Handle `1', `2', and `t' events. Update handling of `g', `k', and `V' events. (error_message): Renamed to... (write_header): This. Display point size and rotation angle. (main): Handle new render mode. 2006-01-12 suzuki toshiya Add `ftoldmac' commandline program to test MacOS specific feature: font file access by FSSpec, font file search by old/new QuickDraw, and font name or ATS font name. * mac/ftoldmac.c: Added. * mac/Makefile: Unix Makefile for MacOS X. * mac/ftoldmac.m68k_far.make.txt: MPW Makefile skeleton. * mac/ftoldmac.ppc_carbon.make.txt: MPW Makefile skeleton. * mac/ascii2mpw.py: Python script to generate MPW Makefile from the skeletons. * mac/README: Add note about ftoldmac, because ft2demos/mac was originally for demos built by CodeWarrior. 2005-12-08 Chia-I Wu * src/ftview.c (error_message): Renamed to write_header. Also write face size, first glyph index. Write glyph name if available. (main): Updated to use write_header. 2005-12-04 Chia-I Wu * src/ftbench.c: Update copyright date. Use `getopt' from `common.h'. 2005-12-04 Chia-I Wu * src/ftbench.c: Formatting. Make `face' and `charset' local variables. (btest_t): Use `const' qualifier for `title'. (bcharset_t): Change the type of `size' to `FT_Int'. (face_requester, benchmark): Updated because `face' is no longer global. (test_get_char_index, test_cmap_cache, get_charset): Updated because `charset' is no longer global. (main): New variables, `face' and `charset'. Updated because `face' and `charset' are local now. `get_charset' only when perform FT_BENCH_CMAP. 2005-12-02 Chia-I Wu Overhaul `ftbench.' Now it can perform tests with arbitrary load flags and render mode. Testing `Render' instead of `Load + Render', for example, is also possible now. * src/ftbench.c: Overhauled. 2005-11-30 Werner Lemberg Replace flag `-c' with `-v' to indicate verbosity. * src/ftdump.c (verbose): New global variable. (usage): Updated. (Print_Charmaps): Only take a single argument. Update caller. Always show some charmap info. Use `verbose'. (main): Remove verbose_cmap. Handle `-v' instead of `-c'. * src/common.c (getopt): s/illegal/invalid/. 2005-11-30 Chia-I Wu * src/ftdump.c (Print_Charmaps): face->charmap might be NULL. 2005-11-30 Chia-I Wu * src/ftdump.c (main): New command line option `c' to show the contents of charmaps. (Print_Charmaps): Take one more argument: `verbose'. (usage): Updated. 2005-11-21 Werner Lemberg * graph/grinit.c (grDoneDevices): New function. * graph/graph.h (grInit, grDone): Remove unused declarations. (grDoneDevices): New declaration. * src/ftcommon.c (FTDemo_Display_Done): Call grDoneDevices. (FTDemo_Done): Free `handle'. * src/ftmulti.c (main): Call grDoneSurface and grDoneDevices. 2005-11-18 Werner Lemberg * src/ftvalid.c (run_ot_validator, run_gx_validator, run_ckern_validator): Remove unused variable `memory'. 2005-11-18 suzuki toshiya * src/ftvalid.c: Use FT_TrueTypeGX_Validate, FT_ClassicKern_Validate and FT_OpenType_Validate instead of FT_FREE (it calls FT_Free_Debug of libfreetype, which is not a public function). 2005-11-16 David Turner * graph/graph.h: Updated. * graph/grdevice.c (grSurfaceDone): New function to free surface correctly. This was commented out previously. * graph/x11/grx11.c (gr_x11_device_done): Call XFreeCursor. (gr_x11_surface_done): Call XFreeGC to fix memory leak. * src/ftcommon.c (FTDemo_Display_Done): Call `grDoneSurface' instead of `free' to fix memory leak. * src/ftbench.c (main): Add the `-c' flag to specify maximum iteration count. Useful for repeat profiling. (usage): Updated. 2005-09-29 Werner Lemberg * src/ftcommon.c (FTDemo_Update_Current_Flags): Fix variable shadowing. 2005-09-27 David Turner Fix gamma handling, mainly for LCD modes. * graph/gblgblit.c (GRGB_TO_RGB565): Protect arguments correctly. * graph/gblcolor.h, graph/gblhbgr.h, graph/gblhrgb.h, graph/gblvbgr.h, graph/gblvrgb.h: Call gblender_use_channels. * graph/gblender.c (gblender_clear, gblender_reset): Handle blender cache. (gblender_use_channels): New function. (gblender_reset_key): Improve. (gblender_lookup, gblender_lookup_channel): Comment possible call to gblender_reset. Fix computation of `idx'. (gblender_reset_channel_key): Fix computation of `a' and `r'. * graph/gblender.h (GBLENDER_SHADE_INDEX): Corrected definition. (gblender_use_channels): New declaration. * src/Jamfile: Include ftcommon.c. Fix order of link libraries. 2005-09-22 David Turner * src/ftcommon.c (FTDemo_Update_Current_Flags): Fix load flags computation to mimic libXft's behaviour. 2005-08-30 Werner Lemberg * graph/graph.h (grFillRectangle): Comment out -- we don't have an implementation. 2005-08-23 Masatake YAMATO * src/ftvalid.c: Add gxvalid support. (GX_VALIDATOR_SYMBOL): New definition. (CKERN_VALIDATOR_SYMBOL): New definition. (ValidatorType::GX_VALIDATE): New enum member. (ValidatorType::CKERN_VALIDATE): New enum member. (validator_symbols): Added GX_VALIDATOR_SYMBOL and CKERN_VALIDATOR_SYMBOL. (gx_table_spec): New const. (N_GX_TABLE_SPEC): New definition. (print_usage): Write about gxvalid and ckern valid. (run_gx_validator): New function. (list_gx_tables): Ditto. (run_ckern_validator): Ditto. (list_ckern_tables): Ditto. (main): Call new validators. * src/ftvalid.c: Following are misc modifications. (report_result): Use printf instead fprintf. Fix incorrect message. (main): Use switch/case instead of if/else when calling per validator functions. Call FT_Done_Face. Use a loop to set validator. (print_usage): Insert empty line in usage strings. (validator_symbols): Added NULL as the last array element. 2005-07-04 Chia I Wu * src/ftcommon.i: Removed. * src/ftgamma.c: Updated to use api provided by ftcommon.c. * Makefile: Make ftgamma depend on ftcommon.c. Remove dependency of ftmulti.c on ftcommon.i. 2005-06-17 Werner Lemberg * Makefile: Update rules for ftview and ftstring which no longer depend on ftcommon.i but on ftcommon.c. (LINK_ITEMS, LINK_CMD, LINK_LIBS): New variables. (GRAPH_LINK2): Removed. (COMMON_LINK, GRAPH_LINK): Replace with... (LINK_COMMON, LINK_GRAPH): This. Use LINK_ITEMS, LINK_CMD, and LINK_LIBS. Update all affected targets. (LINK_NEW): Temporary new link command to handle executables which use ftcommon.c. (FTCOMMON_OBJ): New variable to handle ftcommon.c. 2005-06-17 Chia I Wu * src/ftcommon.c, src/ftcommon.h: New files. * src/ftstring.c: Rewritten. Make the function keys more compatible with ftview.c. New key 'V' for vertical rendering. * src/ftview.c: Rewritten. Now we can use number keys (i.e. 1, 2, ...) to select rendering mode. 2005-06-08 Werner Lemberg * Version 2.1.10 released. ========================== 2005-05-26 Werner Lemberg * src/ftcommon.i (get_glyph_bitmap, glyph_to_bitmap): Initialize `target->grays' even for FT_PIXEL_MODE_MONO since it is tested in grBlitGlyphToBitmap. * graph/x11/grx11.c (gr_x11_surface_init): Initialize `xswa.border_pixel'. 2005-05-25 Chia I Wu * src/ftcommon.i: Include FT_SYNTHESIS_H. Make `render_mode' an enumeration. * src/ftview.c (Render_Embolden): New function. (Process_Event, main): Update to `render_mode' enumeration. 2005-05-23 Werner Lemberg * src/ftvalid (main) <'v'>: Add cast to make it compile with C++. 2005-04-24 YAMATO Masatake * src/ftvalid.c: New file. * Makefile, src/Jamfile: Add ftvalid. 2005-03-04 Werner Lemberg * src/ftgamma.c (Render_GammaGrid), src/ftmulti.c (parse_design_coords), src/ftview.c (Render_GammaGrid): Fix compiler warnings. 2005-02-28 David Turner * src/ftbench.c (preload, memory_file, memory_size): New global variables. (bench_open_close): Handle `preload' by using `FT_New_Memory_Face'. (main): Remove `preload', `memory_file', and `memory_size'. 2005-02-23 David Turner * src/ftbench.c (fetch_test, cbox_test): Fix memory leaks. 2005-02-12 Werner Lemberg Make ft2demos support a separate build directory. * Makefile (have_makefile): New variable. Set if the build directory is the same as the source directory. (GRAPH_DIR): Give full path. (BIN_DIR, OBJ_DIR): Updated. (FT_INCLUDES): Include $(OBJ_BUILD). (LINK) : Fix path to `libtool'. * README: Updated. 2004-12-15 Werner Lemberg * src/ftcommon.i (glyph_to_bitmap): Don't convert 1bpp bitmaps. 2004-12-14 Werner Lemberg * src/ftcommon.i: Include new FT_BITMAP_H. Remove dead code. (ft_bitmap): New global variable. (init_freetype): Call FT_Bitmap_New. (done_freetype): Call FT_Bitmap_Done. (glyph_to_bitmap, get_glyph_bitmap): Handle 2bpp and 4bpp bitmaps using FT_Bitmap_Convert. 2004-12-12 Steve Hartwell * graph/grblit.c (blit_mono_to_rgb32): Advance read buffer properly. 2004-11-26 Jouk Jansen * vms_make.com: Don't assume that the ft2demos package is a subdirectory of freetype2. Fix `ccopt'. 2004-11-19 Werner Lemberg * src/ftview.c (Render_Waterfall): Handle size as points, not as pixels. * src/ftstring.c (layout_glyphs), src/ftmulti.c (LoadChar), src/ftcommon.i (set_current_image_type): Always use FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH. 2004-11-16 Dr. Martin P.J. Zinser * vms_make.com: Updated to be in sync with vms_make.com from FT2. 2004-10-18 Werner Lemberg * graph/gblblit.c (gblender_blit_init): Fix blit test. 2004-09-08 Jouk Jansen * graph/x11/grx11.c [__VMS]: Include vms_x_fix.h. * vms_make.com: Updated. 2004-08-29 Werner Lemberg * graph/gblender.c (gblender_lookup, gblender_lookup_channel): s/index/idx/ to avoid compiler warnings. 2004-08-19 Werner Lemberg * src/ftstring.c (prepare_text): Handle encoding = 0. 2004-07-14 Werner Lemberg * src/ftcommon.i (get_glyph_bitmap): Don't accept a `missing' character with zero or negative width. 2004-07-13 David Turner * graph/x11/grx11.c (gr_x11_device_init): Fix memory leak. * src/ftbench.c (bench_cmap_parse): New function, assigned to key `j'. (usage, main): Updated. * src/ftcommon.i (install_font_file): Initialize `cmap_index' here. (my_face_requester): Don't initialize `cmap_index'. (glyph_to_bitmap): Add new argument to get glyph reference. (get_glyph_bitmap): Updated. * src/ftview.c (Render_Stroke): Increase stroker limit. Fix glyph indices. Fix memory leaks. 2004-06-24 David Turner * Version 2.1.9 released. ========================= 2004-06-24 Werner Lemberg * Makefile (GRAPH_LINK): Add $(MATH). Remove $(MATH) from link rule for ftstring. 2004-06-23 Werner Lemberg * src/ftbench.c: Fix compiler warnings. (usage): Updated. 2004-06-23 David Turner * src/ftbench.c (bench_open_close): New benchmark to measure face open/close performance (controlled by the `i' flag for the `-b' command-line option flag). (main): Use it. 2004-06-11 Werner Lemberg * src/ftstring.c (layout_glyphs): Updated to latest FreeType library changes. 2004-06-03 Werner Lemberg Add autohinting toggling (using the `f' key) to ftstring. Handle new inter-letter spacing support for autohinting. * src/ftstring.c (autohint): New global variable. (layout_glyphs): Handle `autohint' variable. Handle new `lsb_delta' and `rsb_delta' elements of face->glyph->metrics. Remove some dead code. (Help): Updated. (Process_Event): Handle key `f'. Extend key `k'. 2004-05-23 Werner Lemberg * graph/gblender_blit.c: Renamed to... * graph/gblblit.c: This. Updated to use new include file names. (gblender_blit_init): Change 11th argument to `unsigned char*' * graph/gblender_blit.h: Renamed to... * graph/gblblit.h: This. Updated. * graph/gblender_blit_any.h: Renamed to... * graph/gblany.h: This. Updated to use new include file names. * graph/gblender_blit_hbgr.h: Renamed to... * graph/gblhbgr.h: This. * graph/gblender_blit_hrgb.h: Renamed to... * graph/gblhrgb.h: This. * graph/gblender_blit_vbgr.h: Renamed to... * graph/gblvbgr.h: This. * graph/gblender_blit_vrgb.h: Renamed to... * graph/gblvrgb.h: This. * graph/gblender.h (GBLENDER_CHANNEL_VARS): Remove final `;'. * graph/grblit.c: Updated to use new include file names. * graph/rules.mk, graph/Jamfile: Updated. * Makefile: Build `ftgamma'. * src/ftview.c (Render_GammaGrid): Fix compiler warnings. (Help): Updated. * src/ftgamma.c: Fix compiler warnings. 2004-05-20 David Turner Adding support for fast gamma-corrected alpha-blending. New test program `ftgamma'. * graph/grblit.c: Include gblender_blit.h. (GRAY8): New macro. (blit_gray8_to_555, blit_gray8_to_565, blit_gray8_to_24, blit_lcd8_to_24, blit_lcd28_to_24) [GRAY8]: New functions. (blit_gray8_to_32): New function. (gr_gray8_blitters) [GRAY8]: New function table. (grSetGlyphGamma): New function. (grBlitGlyphToBitmap): Implement blending. * graph/graph.h (grSetGlyphGamma): New declaration. * graph/grfont.c, graph/grfont.h (grSetPixelMargin): New function. * graph/gblender.c, graph/gblender.h, graph/gblender_blit.c, graph/gblender_blit.h, graph/gblender_blit_any.h, gblender_blit_color.h, gblender_blit_hbgr.h, gblender_blit_hrgb.h, gblender_blit_vbgr.h, gblender_blit_vrgb.h: New files. * graph/Jamfile (graph_sources): Add gblender and gblender_bnit. * graph/rules.mk (GRAPH_H, GRAPH_OBJS): Updated. * src/ftcommon.i (the_gamma): New global variable. (Init_Display): Call grSetGlyphGamma. * src/ftgamma.c: New demo program. * src/ftview.c: Include math.h. (Render_GammaGrid): New function. (Help): Updated. (Process_Event): Assign increase and decrease of gamma value to keys `g' and `G'. Assign gamma grid rendering mode to key `K'. (main): Updated. * src/Jamfile (LINKLIBS): Add -lm. (GRAPHIC_PROGRAMS): Add ftgamma.c. Add LINKLIBS for all GRAPHIC_PROGRAMS. * vms_make.com: Updated. 2004-05-19 George Williams * src/ftmulti.c (main): Use default axis values. 2004-05-09 Werner Lemberg * src/ftdump.c (put_unicode_be16): Initialize `ch'. 2004-04-29 Flavio Stanchina Parse SFNT `name' table in ftdump if new option -n is given. * src/ftdump.c: Include FT_SFNT_NAMES_H and FT_TRUETYPE_IDS_H. (name_tables): New global variable. (usage): Show -d and -i info conditionally. Add -n info. (platform_id, name_id, put_ascii, put_unicode_be16, Print_Sfnt_Names): New functions. (main): Handle -n. 2004-04-24 George Williams Add GX var font support to ftmulti. Add command line option `-d' to ftmulti to select design coordinates. * src/ftmulti.c: New global variables `requested_pos' and `requested_cnt'. Make `multimaster' a pointer. (parse_design_coords): New function. (Help, usage): Updated. (Process_Event) : Don't use fixed 20 unit steps but a proportional granularity. Use FT_Set_Var_Design_Coordinates instead of FT_Set_MM_Design_Coordinates. (main): Handle new option `-d'. Use FT_Get_MM_Var and FT_Set_Var_Design_Coordinates instead of FT_Get_Multi_Master and FT_Set_MM_Design_Coordinates. 2004-04-23 Werner Lemberg * src/ftcommon.i (TFont): Add `cmap_index'. (my_face_requester): Set `font->cmap_index'. (get_glyph_index): Properly set third argument. 2004-04-21 David Turner * Version 2.1.8 released. ========================= 2004-04-10 Werner Lemberg * src/ftbench.c (cmap_cache_test, main): Use proper cast for `face_id'. 2004-03-26 Ulrich * graph/x11/grx11.c (grX11DeviceRec): Add `visual' member. (gr_x11_device_init): Directly manipulate `x11dev'. Use XGetVisualInfo. (gr_x11_surface_init): Directly use `x11dev'. Fix other visual selection problems. 2004-03-20 Steve Hartwell Updated to make it compile with newer MacOS versions. * graph/mac: Don't include Windows.h but MacWindows.h. Include SIOUX.h only if __MWERKS__ is defined. (refresh_rectangle): Updated. (listen_event): Remove `theEventMask'. Updated. Make code conditional to __MWERKS__ which is related to SIOUX. (init_surface): Handle gr_pixel_mode_rgb24. Updated. 2004-02-20 Werner Lemberg Add `light' render mode to ftview (using key `L'). * src/ftcommon.i (set_current_image_type): Handle FT_LOAD_TARGET_LIGHT. (glyph_to_bitmap, get_glyph_bitmap): Updated. * src/ftview.c (Process_Event): Provide proper header for `light' render mode. (Help): Updated. 2004-02-18 Werner Lemberg * src/ftcommon.i: Include FT_CACHE_MANAGER_H and FT_STROKER_H. Don't include obsolete FT_CACHE_* macros. (glyph_to_bitmap): Remove declaration of `error'. * src/ftview.c: Don't include FT_CACHE_MANAGER_H. (Render_Stroke): Remove declaration of `error'. Fix other compiler warnings. (Render_Waterfall): Remove declaration of `face'. 2004-01-29 David Turner * src/ftcommon.i (get_glyph_bitmap): Rewritten for new cache code. (glyph_to_bitmap): New function. * src/ftview.c (Render_Stroke): New function. (Render_Waterfall): Use FTC_Manager_LookupFace. (Process_Event) <' '>: Provide header text for stroked text. (main): Add Render_Stroke. 2003-12-26 Werner Lemberg * src/ftcommon.i (set_current_size): Don't allow values larger than 0xFFFF. * src/ftview.c (main): Set `face'. (Render_Waterfall): Don't set `face'. use precomputed value instead. (main): Don't use `face->' but `size->face->'. Use `exit' in case of fatal error. Don't test `face' but `size' for printing error messages. Print proper error message for FT_Err_Invalid_PPem. 2003-12-21 David Turner * graph/graph.h (grPixelMode): Add `gr_pixel_mode_lcd2' and `gr_pixel_mode_lcdv2' modes. (grBlitGlyphToBitmap): Remove `is_bgr' argument. Updated all callers. * graph/grblit.c (blit_mono_to_pal8): Speed up loop. (blit_lcd_to_24, blit_lcdv_to_24): Remove `is_bgr' argument. (blit_lcd2_to_24, blit_lcdv2_to_24): New functions. (compute_clips): Updated. (grBlitGlyphToBitmap): Remove `is_bgr' argument. Use new blitter functions for the two new modes. * graph/win32/Jamfile: s/TOOLSET/JAM_TOOLSET/. * src/gbench.c, src/gbench.h: New files. * src/Jamfile: Handle `gbench'. * src/ftbench.c, src/ftcommon.i, src/ftview.c: Updated to use new FreeType cache implementation and new blitter modes. 2003-11-10 Werner Lemberg Add display of bitmap fonts to ftstring. * src/ftstring.c (layout_glyphs): Call FT_Vector_Transform for scalable fonts only. (render_string): Handle bitmap fonts. 2003-11-07 Werner Lemberg * Version 2.1.7 released. ========================= 2003-11-06 David Turner * Version 2.1.6 released. ========================= 2003-11-01 Werner Lemberg * src/testname.c: Include ft2build.h. 2003-10-22 Werner Lemberg * src/ftdump.c (usage): Fix typo. 2003-10-17 Werner Lemberg * src/ftmulti.c (main): Call `FT_Done_Face'. * src/ftstring.c (main): Clean up glyph and face objects, then finish FreeType library. 2003-10-10 Werner Lemberg * src/ftmulti.c (Help): Document all keys. (main): Call FT_Done_FreeType. 2003-09-02 David Turner * Version 2.1.5 released. ========================= 2003-06-30 Werner Lemberg * src/ftdump.c (Print_Fixed): Print all elements of face->available_sizes. 2003-06-17 Werner Lemberg * src/*.c: s/ft_glyph_format_*/FT_GLYPH_FORMAT_*/. s/ft_pixel_mode_*/FT_PIXEL_MODE_*/. s/ft_glyph_bbox_*/FT_GLYPH_BBOX_*/. 2003-06-16 YAMANO-UCHI Hidetoshi * graph/x11/rules.mk (GRAPH_LINK): Add run-time search path on Unix systems. 2003-06-16 Werner Lemberg * src/ftcheckfixedwidth.c: Renamed to... * src/ftchkwd.c: This. * src/testnames.c: Renamed to... * src/testname.c: This. * src/Jamfile, Makefile: Updated. 2003-06-15 Werner Lemberg * *.mk: Updated and revised to latest changes in FreeType 2. 2003-06-13 Werner Lemberg * src/ftdump.c (Print_Type): Don't emit bbox, ascender, descender, and height for non-scalable fonts. 2003-06-08 Werner Lemberg * graph/x11/grx11.c (gr_x11_surface_init): Add proper cast in call to grAlloc. * src/ftbench.c (main): Add proper cast in call to malloc. Use FT_ENCODING_NONE, not 0. 2003-06-01 Werner Lemberg * src/ftview.c (Render_Waterfall): Handle fixed-sized fonts better. 2003-05-27 Martin Zinser * vms_make.com: Handle ftbench. 2003-05-21 Werner Lemberg * src/ftcommon.i (install_font_file): Initialize new elements of reallocated `fonts' array with zero bytes. 2003-05-20 Martin Zinser * descrip.mms: Removed. Now created by... * vms_make.com: New file. 2003-05-19 Werner Lemberg * src/ftcommon.i (install_font_file): Use calloc to allocate `fonts'. (done_freetype): Deallocate `fonts'. 2003-04-28 Werner Lemberg * src/ftcheckfixedwidth.c: Remove unused global variables; make global variables local to `main' if possible. Fixed compiler warnings (s/index/idx/). 2003-04-25 Davor Buvinic * Makefile: Add rules to build ftcheckfixedwidth. 2003-04-24 Anthony Fok * src/ftcommon.i: Replace `ft_encoding_*' with `FT_ENCODING_*'. (file_suffixes): Add `.otf'. (install_font_file): Set font->num_indices depending on encoding. * src/ftmulti.c, src/ftstring.c, src/fttimer.c, src/ftview.c: Replace `ft_encoding_*' with `FT_ENCODING_*'. * src/testnames.c: Replace `ft_render_mode_mono' with `FT_RENDER_MODE_MONO'. 2003-04-09 David Turner * Jamfile: Set FT2_TOP. * src/ftbench.c (main): Use `long' for `max_bytes'. * src/ftcheckfixedwidth.c: New test program. * src/ftstring.c: (prepare_text): Remove unused variable `codepoint'. (apply_gamma): Fix initialization of `buffer'. * src/ftview.c (Render_Waterfall): Print more characters. 2003-04-08 David Turner * Version 2.1.4 released. ========================= 2002-12-02 Antoine Leca * src/ftstring.c: Use `FT_ENCODING_*' everywhere instead of deprecated lowercase variants. (prepare_text): 'message' for the -m option is now expected to be encoded with UTF-8. This allows testing of Unicode chars, including non-BMP characters. 2002-12-01 Antoine Leca * graph/win32/rules.mk: Adding link rules for Borland C++. 2002-11-18 David Turner * Version 2.1.3 released. ========================= 2002-11-10 David Turner * src/Jamfile (PROGRAMS): Add `ftcheckfixedwidth'. 2002-09-25 David Turner * graph/win32/grwin32.c: Removing compiler warnings. * descrip.mms: Removing 'ftmemchk' and 'testnames' from the list of programs to compile, these are now obsolete. 2002-09-25 Anthony Fok * src/ftbench.c: The program did perform out-of-bound memory writes with certain fonts containing a buggy charmap. 2002-09-18 Werner Lemberg Add LCD BGR support. * graph/grblit.c (blit_lcd_to_24, blit_lcdv_to_24): Add parameter `is_bgr' to assign color components in reversed order. (grBlitGlyphToBitmap): Add parameter `is_bgr' passed on to `blit_lcd_lcd*'. Updated all callers. Remove unused label. * graph/graph.h, graph/grfont.c: Updated. * src/ftcommon.i (set_current_image_type), src/ftview.c (Render_All, Render_Text, Render_Waterfall, Process_Event): Handle LCD modes 3 and 4. * src/ftstring.c, src/ftmulti.c: Updated. * graph/x11/grx11.c (gr_x11_device_init, gr_x11_surface_init): Remove unused variables. (gr_x11_format_rgb555): Fix typos. 2002-09-08 David Turner Add support for sub-pixel rendering. * graph/x11/grx11.c, graph/win32/grwin32.c: Completely rewritten to support 24-bits RGB surfaces. This is needed to test sub-pixel rendering. Note that other drivers haven't been touched yet. The X11 driver doesn't work with 8-bit displays for now, but a reduced mode will probably be introduced in the near future. * graph/graph.h (grPixelMode): Add `gr_pixel_mode_lcd' and `gr_pixel_mode_lcdv'. * graph/grblit.c (compute_clips): Use `gr_pixel_mode_lcd' and `gr_pixel_mode_lcdv'. (compose_pixel_full): New macro. (compose_pixel): Use it. (blit_lcd_to_24, blit_lcdv_to_24): New functions. for RGB-decimated modes (BGR not yet implemented). (gr_color_blitters): Updated. (grBlitGlyphToBitmap): Support new pixel modes. * src/Jamfile (PROGRAMS): Don't include fttimer, fttry, and testnames. * src/ftbench.c: Updated to latest changes in FreeType library. * src/ftcommon.i (Init_Display): New default mode is `gr_pixel_mode_rgb24'. (set_current_image_type, get_glyph_bitmap): Add support for LCD modes (horizontal and vertical). * src/ftview.c (Render_Waterfall): Call `set_current_size'. (Help): Document new `L' key for cycling through the pixel modes. (Process_Event): Handle `L' key. 2002-08-04 Vincent Caron * src/ftcommon.i (Text), src/ftmulti.c (Text): s/jumped/jumps/. * src/ftview.c (Render_Waterfall): Remove unused variable. 2002-07-03 David Turner * src/ftview.c (Render_Waterfall): New function, adding a "waterfall" rendering mode (accessible by cycling modes with the space bar). (Process_Event, main): Use it. 2002-07-01 David Turner * src/ftbench.c: Adding the "-p" option to pre-load font files in memory. This is a very useful thing to quantify the performance improvements achieved by many of FreeType internal optimizations regarding stream i/o. * src/ftstring.c (reset_transform): Fix Werner's incorrect fix. 2002-06-25 Werner Lemberg * src/ftstring.c (reset_transform): Fix transformation matrix. 2002-06-23 Vincent Caron Adding support for gamma-corrected display to ftstring (assigned to `g', F9, and F10 keys). * src/ftstring.c (use_gamma, gamma_value, gamma_ramp): New global variables. (init_gamma, apply_gamma, draw_gamma_ramp): New functions. (render_string): Use apply_gamma. (Help): Updated. (Process_Event): Handle `g', F9, and F10 keys. (main): Call init_gamma and draw_gamma_ramp. 2002-06-21 David Turner * Version 2.1.2 released. ========================= 2002-06-14 Werner Lemberg * Makefile, graph/rules.mk: s/TOP/TOP_DIR/, s/TOP2/TOP_DIR_2/. 2002-06-10 Werner Lemberg * src/ftbench.c: s/index/idx/. Fixed more gcc compiler warnings. 2002-06-10 David Turner * src/ftbench.c: Removing compiler warnings. * src/ttdebug.c: Updating to latest internal changes. 2002-06-09 David Turner * Version 2.1.1 released. ========================= 2002-06-07 David Turner Adding Vincent Caron's benchmark program. * src/ftbench.c: New file. * Makefile, src/Jamfile: Updated. Other minor fixes. * src/ftview.c (Render_Text): Call get_glyph_index() conditionally. 2002-05-20 Werner Lemberg * src/ftcommon.i (get_glyph_bitmap): Use `sbit->num_grays'. Handle `sbit->buffer == 0' correctly. 2002-05-17 Michael Pfeiffer * graph/beos/Jamfile: New file. 2002-05-12 Werner Lemberg * README: Updated. 2002-05-12 Michael Pfeiffer * graph/Jamfile: Add support for BeOS. 2002-04-28 Werner Lemberg * src/ftview.c (Render_Text): Don't call `get_glyph_index'. This is done in `get_glyph_bitmap'. * src/ftstring.c (encoding): New global variable, initialized to `ft_encoding_unicode'. (render_mode): Removed. (make_tag): New utility function (copied from ftcommon.i). (prepare_text): Call `FT_Select_Charmap'. (Process_Event): Don't handle ` '. (main): Add option -e to select encoding. (usage): Document it. * src/ftmulti.c (encoding): New global variable. (make_tag): New utility function (copied from ftcommon.i). (main): Add option -e to select encoding. (usage): Document it. 2002-04-28 Martin Zinser * descrip.mms: Add clean target. Handle compiler options better. 2002-04-17 David Turner * Version 2.1.0 released. ========================= 2002-04-01 Werner Lemberg * graph/x11/grx11.c: Use `c_class' instead of `class' if compiling with C++. * src/ftcommon.i (encoding): Use `FT_Encoding' type. Update all using code. (done_glyph_bitmap): Use cast. * src/ftview.c: Updated to changes in `ftcommon.i'. (main): Use cast for `encoding'. 2002-03-30 Werner Lemberg * src/ftdump.c (Print_Type): Use `%ld' for some fields. * src/testnames.c (main): Exit if no parameter. 2002-03-21 David Turner * graph/grblit.c, graph/win32/grwin32.c, src/common.c, src/ftcommon.i, src/ftdump.c: Getting rid of compiler warnings. 2002-03-08 David Turner * Version 2.0.9 released. ========================= 2002-03-06 David Turner * src/ftdump.c: Added display of ascender/descender/text height. * Jamfile: Support the FT2_TOP environment variable to indicate where the FreeType 2 sources are located. This is very useful for switching between the STABLE and HEAD branches of the library. 2002-03-05 David Turner * src/ftdump.c: Added the display of a font's Postscript name, EM size and global Bbox. Now supports the debugging mode of 2.1.x. * src/ftview.c: Minor change to support debugging mode of 2.1.x. 2002-02-14 Detlef Würkner * src/fttimer.c (ConvertRaster): Handle embedded bitmaps properly. * src/ftstring.c (use_sbits): Default value is no 0. (layout_glyphs): Handle `use_sbits'. (Process_Event): Make friendlier error messages. 2002-02-09 David Turner * Version 2.0.8 released. ========================= 2002-02-02 David Turner * Version 2.0.7 released. ========================= 2002-01-25 Martin Zinser * src/common.h ([VMS]): Alias stuff specific to getopt. * graph/grinit.c ([DEVICE_X11]): Handle VMS. * descrip.mms: New file for compiling the demo programs with OpenVMS. 2002-01-07 David Turner * Version 2.0.6 released. ========================= 2001-12-31 Werner Lemberg * graph/x11/rules.mk: Fix typo (wilcard -> wildcard). 2001-12-30 David Turner * README: Updated to version 2.0.6. * graph/x11/rules.mk: Updated X11 detection rules: "/usr/X11R6" and "/usr/local/X11R6" are now probed as a fallback. This allows the test programs to work automatically on Debian Linux systems (which only use "/usr/bin/X11" in the path). 2001-12-21 David Turner * src/ftcommon.i (get_glyph_bitmap): Added a missing error check. Make the function return an error code if necessary. * src/testnames.c (main): Fix typo. 2001-12-15 Werner Lemberg * Makefile: Add `testnames' program. * src/testnames.c (main): Remove unused variable. First command line parameter is now used as the font to be tested instead of a fixed string. 2001-12-14 David Turner * src/ftstring.c (layout_glyphs): Fix centering bug. 2001-12-12 David Turner * src/testnames.c: New test program. 2001-12-08 David Turner Use new charmap cache. * src/ftcommon.i: Include FT_CACHE_CHARMAP_H. (cmap_cache): New global variable. (encoding): Change type to FT_UInt32. (init_freetype): Initialize charmap cache. (get_glyph_index): New function. (get_glyph_bitmap): Use it. Increase pixel dimensions to 48 for sbit cache. Add ftc_image_format_outline flag if not a bitmap glyph. * src/ftview.c: Use `get_glyph_index'. 2001-12-06 David Turner An update to use the new cache manager code. * src/ftcommon.i: s/FTC_Image_Cache/FTC_ImageCache/. s/FTC_SBit_Cache/FTC_SBitCache/. s/FTC_Image_Desc/FTC_ImageDesc/. s/image_type/type/. (done_glyph_bitmap): New function. (get_glyph_bitmap): Add new argument. Use sbits cache only of pixel size <= 32. Other fixes. * src/ftview.c (Render_All, Render_Text): Updated to changes in ftcommon.i. 2001-12-05 Werner Lemberg * src/ftcommon.i, src/ftview.c: s/manager/cache_manager/ to avoid compiler warnings. 2001-12-05 Taiji Yamada * src/graph/x11/grx11.c (done_surface): Free and reset color map. (init_surface): Use private colormap if there are no more shared colormap entries. 2001-10-27 David Turner * src/ftcommon.i (use_sbits_cache): Set to 1. 2001-10-26 Leonard Rosenthol * mac/codewarrior/carbonprefix.h: New file to define building the demos Carbonized. * mac/codewarrior/ftview.prj: Updated for CW7 and to build a Carbonized version. * mac/getargv.c: Updated to build Carbonized. * mac/ftview_m.c: Updated to build Carbonized. 2001-10-18 David Turner * Jamrules: Define X11_LINKLIBS. * README: Updated. * graph/os2/Jamfile: Define GROS2_PATH and GRAPH_LINKLIBS. * src/Jamfile (PROGRAMS): Add fttry. Fix order of libraries. * src/ftview.c (main): Update cache dump code. * src/ftlint.c (main) [TEST_PSNAMES]: Add some debugging code. * src/fttry.c (main) [DUMP_NAME]: Add some glyph name debugging code. 2001-10-17 David Turner * Version 2.0.5 released. ========================= 2001-09-21 Eric Olson * graph/os2/gros2pm.c: Remove global variable `window_created'. (LOCK): Fix typo. (refresh_rectangle): Use LOCK() and UNLOCK(). (init_surface): Don't use `window_created'. Use LOCK() and UNLOCK(). (RunPMWindow): Use LOCK() and UNLOCK(). Fix typo. Don't use `window_created'. (Message_Process): Allow F9, F10, and others keys to pass through the application. Use LOCK() and UNLOCK(). 2001-09-10 Werner Lemberg * README: Slight update. 2001-08-25 Werner Lemberg Added CMap support to ftview: The new flag `-e' accepts an encoding tag as defined in freetype.h (e.g. `unic') to select a character map. Only fonts with a valid character map are selected. * src/ftcommon.i: s/num_glyphs/num_indices/. (encoding): New global variable. (make_tag): New function. (install_font_file): If a cmap tag has been specified, load functions only which have a valid cmap. (my_face_requester): Select cmap also if `encoding' is non-zero. (get_glyph_bitmap): Map char index to glyph if `encoding' is non-zero. * src/ftview.c: s/first_glyph/first_index/. (Help): Adjust help text. (usage): Document -e switch. (main): Implement -e switch. Adjust `Header'. * Version 2.0.4 released. ========================= 2001-06-27 Werner Lemberg * src/ftmemchk.c: s/memtest/ftmemchk/. 2001-06-27 David Turner * src/ftcommon.i, src/ftmemchk.c: Changes due to the modification of the FT_CALLBACK_DEF macro definition. 2001-06-24 David Turner Renamed the test program "memtest" to "ftmemchk". * src/memtest.c: Renamed to ... * src/ftmemchk.c: This file. * Makefile, src/Jamfile: Updated. * Version 2.0.3 released. ========================= 2001-05-28 David Turner * Jamfile, src/Jamfile, graph/os2/Jamfile, graph/win32/Jamfile, graph/x11/Jamfile: Updating Jamfiles to correctly link the graphics programs on all platforms with Jam. * src/ftstring.c: Removing debugging output. 2001-04-25 David Turner * graph/beos/grbeos.cpp, graph/beos/grbeos.h, graph/beos/rules.mk, graph/grinit.c: added BeOS graphics driver to MiGS. 2001-04-04 Werner Lemberg * graph/allegro/gralleg.c, graph/mac/grmac.c, graph/os2/gros2pm.c, graph/x11/grx11.c: Don't include system-specific header but `grobjs.h'. * graph/x11/grx11.c: Some structural reorderings. Include `grdevice.h'. * graph/grinit.c: Use subdirectories for #include. * graph/rules.mk, graph/*/rules.mk (DEVICE_INCLUDE): Removed. * Jamrules, Jamfile, */Jamfile: Updated. It now compiles with X11 also (no checking for X header and lib locations yet). 2001-04-04 David Turner * Jamrules, Jamfile, graph/Jamfile, graph/x11/Jamfile, graph/win32/Jamfile, graph/os2/Jamfile, src/Jamfile: Added Jamfiles to build the FreeType 2 demos with Jam. Be careful, they probably don't work on Unix and OS/2 yet. 2000-03-24 David Turner * Version 2.0.2 released. ========================= 2001-03-23 David Turner * Makefile, src/*.c: Changed to new header inclusion scheme. 2001-03-13 Werner Lemberg * graph/x11/grx11.c: Increase MAX_PIXEL_MODES to 100. 2001-03-06 Werner Lemberg * src/memtest.c (my_memory): Add cast to remove C++ compiler error. 2001-02-22 David Turner * src/memtest.c: Fixed the debug memory allocator. The constant "my_memory" was replaced by a function that allocates a new "memory allocator through "my_alloc()" and returns it. 2001-02-06 James H. Cloos Jr. * src/ftview.c (Render_Text): Fix rendering of test string. 2001-01-31 Werner Lemberg * src/ftstring.c (Help): Added `void' type. 2000-12-09 Werner Lemberg * Makefile: Added $(LDFLAGS) variable for `unix' link target. 2000-12-01 David Turner * Version 2.0.1 released. ========================= 2000-11-09 David Turner * Version 2.0 released. ======================= Local Variables: version-control: never coding: utf-8 End: