src/pfr/pfrsbit.c


Log

Author Commit Date CI Message
Werner Lemberg 0a0c2256 2018-01-02T09:33:57 Update copyright year.
Werner Lemberg 563ae780 2017-01-04T20:16:34 Update copyright year.
Werner Lemberg 37e193e9 2016-11-06T12:32:51 Introduce a way of quickly retrieving (embedded) bitmap metrics. `FT_Load_Glyph' doesn't generate a bitmap for a non-bitmap glyph until the user calls `FT_Render_Glyph'. However, it always allocates memory for bitmaps and copies or decodes the contents of a bitmap glyph, which can be quite slow for PNG data. * include/freetype/freetype.h (FT_LOAD_BITMAP_METRICS_ONLY): New macro. * src/base/ftobjs.c (FT_Load_Glyph): Unset FT_LOAD_RENDER if FT_LOAD_BITMAP_METRICS_ONLY is used. * src/sfnt/ttsbit.c (tt_sbit_decoder_alloc_bitmap, tt_sbit_decoder_load_bitmap): Add argument to control allocation of the glyph slot. (tt_sbit_decoder_load_image, tt_sbit_decoder_load_compound, tt_face_load_sbit_image): Updated. * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Quickly exit if `FT_LOAD_BITMAP_METRICS_ONLY' is set. * src/pfr/pfrsbit.c, src/pfr/pfrsbit.h (pfr_slot_load_bitmap): Add argument to control allocation of the glyph slot. * src/pfr/pfrobjs (pfr_slot_load): Updated. * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto. * docs/CHANGES: Updated.
Werner Lemberg adfec0af 2016-07-05T07:38:52 * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Fix compiler warning.
Werner Lemberg 351fc4b4 2016-03-29T09:13:13 [pfr] Fix binary search (#47514). * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Handle border conditions correctly.
Werner Lemberg 2a03e5d9 2016-03-29T08:56:03 [pfr] Minor. * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Replace `left', `right', and `middle' with `min', `max', and `mid' as used in other FreeType binary search code. (pfr_load_bitmap_metrics): Fix invalid left shift.
Werner Lemberg b069a590 2016-03-26T08:00:07 [pfr] Robustify bitmap strike handling (#47514). We did a binary search for a charcode without ensuring that the searched data is ordered. Validating the order is now done lazily, this is, the first access to a bitmap glyph triggers the order check in the corresponding bitmap strike. * src/pfr/pfrtypes.h (PFR_BitmapFlags): New values `PFR_BITMAP_VALID_CHARCODES' and `PFR_BITMAP_CHARCODES_VALIDATED'. * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Make `flags' argument a pointer. Handle new PFR_BITMAP_XXX flags. (pfr_slot_load_bitmap): Updated.
Werner Lemberg 2aa69565 2016-03-25T10:54:37 [pfr] Minor. * src/pfr/pfrsbit.c, srf/pfr/pfrobjs.c: Use flag names instead of bare numbers.
Werner Lemberg 59828f72 2016-03-25T08:47:14 [pfr] Various clang sanitizer fixes. * src/pfr/pfrsbit.c (pfr_load_bitmap_metrics): Correctly handle signed nibbles. (pfr_slot_load_bitmap): Correctly exit frame in case of error. Fix invalid left shifts.
Werner Lemberg 9adeab64 2016-01-13T11:54:10 Update copyright year.
Werner Lemberg fba29fab 2015-10-27T21:04:48 [pfr] Add some safety guards (#46302). * src/pfr/pfrload.h (PFR_CHECK): Rename to... (PFR_CHECK_SIZE): ... this. (PFR_SIZE): [!PFR_CONFIG_NO_CHECKS]: Define to PFR_CHECK_SIZE. * src/pfr/pfrload.c (pfr_log_font_count): Check `count'. (pfr_extra_item_load_kerning_pairs): Remove tracing message. (pfr_phy_font_load): Use PFR_CHECK_SIZE where appropriate. Allocate `chars' after doing a size checks. * src/pfr/pfrsbit.c (pfr_load_bitmap_bits): Move test for invalid bitmap format to... (pfr_slot_load_bitmap): ... this function. Check bitmap size.
Werner Lemberg 4a3fce93 2015-10-27T19:27:39 [pfr] Formatting, improving comments.
Werner Lemberg 8bfffb4c 2015-02-21T09:52:29 [pfr] Signedness fixes. * src/pfr/pfrdrivr.c, src/pfr/pfrgload.c, src/pfr/pfrload.c, src/pfr/pfrload.h, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c, src/pfr/pfrtypes.h: Apply.
Werner Lemberg f57fc59e 2015-01-17T20:41:43 Run `src/tools/update-copyright'.
suzuki toshiya 348fffa8 2014-11-28T16:05:59 Fix compiler warning to the comparison between signed and unsigned variable. * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix the comparison between `ypos + ysize' and FT_INT_{MAX,MIN}.
suzuki toshiya 1b057040 2014-11-27T17:53:20 Prevent too negative values (< FT_INT_MIN) in bitmap metrics, suggested by Alexei. * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Prevent too negative values in `xpos' and `ypos + ysize'. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Prevent too negative values in `x_left' and `y_top'. Either negative values in `width' and `height' are checked.
Werner Lemberg 23c093fc 2014-11-21T08:41:39 Minor.
Werner Lemberg e3c93015 2013-03-14T11:21:17 */*: Use FT_Err_Ok only. This is a purely mechanical conversion.
Werner Lemberg 059bc335 2013-03-14T10:27:35 */*: Use `FT_THROW'. This is essentially a mechanical conversion, adding inclusion of `FT_INTERNAL_DEBUG_H' where necessary, and providing the macros for stand-alone compiling modes of the rasterizer modules. To convert the remaining occurrences of FT_Err_XXX and friends it is necessary to rewrite the code. Note, however, that it doesn't harm if some cases are not handled since FT_THROW is a no-op.
Werner Lemberg f765e440 2010-06-24T10:34:29 */*: Use module specific error names where appropriate.
Werner Lemberg 9045f5bd 2009-12-03T05:57:30 Fix compiler warnings. * src/truetype/ttgload.c (tt_get_metrics): Put `Exit' label into the proper preprocessor conditional. * src/pfr/pfrobjs.c (pfr_slot_load): Pacify gcc.
suzuki toshiya e866cf3f 2009-08-01T00:32:06 Improve bitmap size or pixel variables for 16-bit systems.
Werner Lemberg 5edafed1 2006-02-22T08:23:35 Clean-ups, copyright years, formatting.
David Turner 1ae134a2 2006-02-21T16:50:17 * src/sfnt/sfobjs.c (sfnt_face_load): fixed silly bug that prevented embedded bitmaps from being correctly listed and used * src/pfr/pfrsbit.c: fixed handling of character advances
David Turner 87c0d30f 2003-12-24T01:10:46 * include/freetype/fttypes.h src/autofit/afangles.c src/autofit/aflatin.c src/autohint/ahglyph.c src/autohint/ahhint.c src/base/ftcalc.c src/base/ftgloadr.c src/base/ftglyph.c src/base/ftobjs.c src/base/ftsynth.c src/base/fttrigon.c src/cff/cffgload.c src/cid/cidgload.c src/cid/cidload.c src/pfr/pfrgload.c src/pfr/pfrload.c src/pfr/pfrsbit.c src/psaux/psobjs.c src/pshinter/pshalgo.c src/pshinter/pshglob.c src/pshinter/pshrec.c src/raster/ftrend1.c src/sfnt/ttcmap0.c src/smooth/ftsmooth.c src/truetype/ttdriver.c src/truetype/ttgload.c src/truetype/ttinterp.c src/truetype/ttobjs.c src/type1/t1gload.c src/winfonts/winfnt.c: use of the FT_PAD_XXX and FT_PIX_XXX macros to avoid compiler warnings with very pedantic compilers. Hints: (x) & -64 will warn if (x) is not signed.. use (x) & ~63 instead !
Werner Lemberg a259b6dd 2003-09-22T09:53:56 * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): Fix compilation warning (s/pptr/Pptr/). * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H, FT_INTERNAL_FNT_TYPES_H): Removed.
David Turner 17dd0634 2003-09-21T16:04:05 * include/freetype/internal/ftserv.h, include/freetype/internal/service/svpfr.h, include/freetype/internal/pfr.h, src/base/ftpfr.c: migrating the functions of "ftpfr.h" to the new service-base internal API * src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrsbit.c, src/psaux/psobjs.c, src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/truetype/ttobjs.c, src/type1/t1driver.c, src/type1/t1objs.c, src/type42/t42objs.c, src/winfonts/winfnt.c: removing various compiler warnings
Werner Lemberg 779afe4b 2003-06-22T15:33:53 * src/winfonts/winfnt.c (FNT_Load_Glyph): Use first_char in computation of glyph_index. (FNT_Size_Set_Pixels): To find a strike, first check pixel_height only, then try to find a better hit by comparing pixel_width also. Without this fix it isn't possible to access all strikes. Also compute metrics.max_advance to be in sync with other bitmap drivers. * src/base/ftobjs.c (FT_Set_Char_Size): Remove redundant code. (FT_Set_Pixel_Size): Assign value to `metrics' after validation of arguments. Synchronize computation of height and width for bitmap strikes. The `width' field in the FT_Bitmap_Size structure is now only useful to enumerate different strikes. The `max_advance' field of the FT_Size_Metrics structure should be used to get the (maximum) width of a strike. * src/bdf/bdfdrivr.c (BDF_Face_Init): Don't use AVERAGE_WIDTH for computing `available_sizes->width' but make it always equal to `available_sizes->height'. * src/pcf/pcfread.c (pcf_load_font): Don't use RESOLUTION_X for computing `available_sizes->width' but make it always equal to `available_sizes->height'. * src/truetype/ttdriver.c (Set_Pixel_Sizes): Pass only single argument to function. * src/psnames/psmodule.c (ps_unicode_value): Handle `.' after `uniXXXX' and `uXXXX[X[X]]'. * src/bdf/bdfdrivr.c: s/FT_Err_/BDF_Err/. * src/cache/ftccache.c, src/cache/ftcsbits.c, src/cache/ftlru.c: s/FT_Err_/FTC_Err_/. * src/cff/cffcmap.c: s/FT_Err_/CFF_Err_/. * src/pcf/pcfdrivr.c: s/FT_Err_/PCF_Err_/. * src/psaux/t1cmap.c: Include psauxerr.h. s/FT_Err_/PSaux_Err_/. * src/pshinter/pshnterr.h: New file. * src/pshinter/rules.mk: Updated. * src/pshinter/pshalgo.c, src/pshinter/pshrec.c: Include pshnterr.h. s/FT_Err_/PSH_Err_/. * src/pfr/pfrdrivr.c, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c: s/FT_Err_/PFR_Err_/. * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c, src/sfnt/ttload.c: s/FT_Err_/SFNT_Err_/. * src/truetype/ttgload.c: s/FT_Err_/TT_Err_/. * src/gzip/ftgzip.c: Load FT_MODULE_ERRORS_H and define FT_ERR_PREFIX and FT_ERR_BASE. s/FT_Err_/Gzip_Err_/.
Werner Lemberg 0240d29c 2003-06-09T15:54:18 * src/gzip/ftgzip.c (ft_gzip_file_fill_output): Handle Z_STREAM_END correctly. * src/pshinter/pshglob.c (psh_globals_new): Change calculation of dim->stdw.count to avoid compiler problem. * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Move the block variables to the beginning of the function to avoid compiler problems. Add casts necessary for 16bit compilers. * src/pfr/rules.mk (PFR_DRV_SRC): Add pfrsbit.c. (PFR_DRV_H): Add pfrtypes.h. * include/freetype/config/ftconfig.h: s/__MWKS__/__MWERKS__/. * src/pfr/pfrsbit.c (pfr_bitwriter_init): Change type of third argument to FT_Bool. (pfr_lookup_bitmap_data): Change type of third and fourth argument to FT_UInt. Updated caller. (pfr_load_bitmap_bits): Change type of fourth argument to FT_Bool.
Werner Lemberg 2e57343f 2003-04-23T14:14:06 * src/pfr/pfrload.c (pfr_extra_item_load_font_id): Use FT_PtrDist instead of FT_Uint for `len'. Cleanups.
David Turner 66cbc209 2003-03-20T07:04:40 * docs/*: serious rewriting of the documentation * include/freetype/internal/ftobjs.h, src/base/ftobjs.c, src/bdf/bdfdrivr.c, src/pcf/pcfdriver.c, src/pfr/pfrsbit.c, src/sfnt/ttsbit.c, src/type42/t42objs.c, src/winfonts/winfnt.c: introduced three new functions to deal with glyph bitmaps within FT_GlyphSlot objects. these are: ft_glyphslot_free_bitmap ft_glyphslot_alloc_bitmap ft_glyphslot_set_bitmap these are much more convenient to use than managing the FT_GLYPH_OWN_BITMAP flag manually. the font drivers have been modified to use them as well. * src/cache/ftlru.c: fixed an invalid assertion check
David Turner 4bdf4350 2003-01-30T23:24:18 various improvements for 2.1.4. see ChangeLog, I've got problems with copy & paste on my desktop !!
Werner Lemberg eacb9306 2002-10-07T10:12:43 Formatting; adding file headers.
David Turner 80171e06 2002-10-05T14:57:03 * src/pfr/pfrsbit.h, src/pfr/pfrsbit.c, src/pfr/pfrload.c, src/pfr/pfrgload.c, src/pfr/pfrobjs.c, src/pfr/pfrtypes.h, Jamfile, src/base/ftobjs.c: adding support for embedded bitmaps to the PFR driver, and rewriting its kerning loader / handler to use all kerning pairs in a physical font (and not just the first item). * src/tools/docmaker/content.py, src/tools/docmaker/sources.py, src/tools/docmaker/tohtml.py: fixing a few nasty bugs * src/sfnt/ttcmap0.c: the validator for format 4 sub-tables is now capable of dealing with invalid "length" fields at the start of the sub-table. This allows fonts like "mg______.ttf" (i.e. Marriage) to return accurate charmaps.