src/raster


Log

Author Commit Date CI Message
Werner Lemberg 695d606a 2022-04-01T08:50:33 Whitespace.
Werner Lemberg d0cfb4e1 2022-01-11T10:54:10 Update all copyright notices.
Werner Lemberg 8c8f51c5 2021-11-19T21:50:22 Avoid undefined left-shifts. We really have to use double casts to avoid issues with C's and C++'s signedness propagation rules in implicit casts. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=41178 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=41182 * include/freetype/config/public-macros.h (FT_STATIC_CAST, FT_REINTERPRET_CAST): Modify macro to take two arguments. Update all callers. (FT_STATIC_BYTE_CAST): New macro. * include/freetype/freetype.h (FT_ENC_TAG): Use `FT_STATIC_BYTE_CAST`. * include/freetype/ftimage.h (FT_IMAGE_TAG): Ditto. * include/freetype/fttypes.h (FT_MAKE_TAG): Ditto. Use `FT_Tag` for casting. * src/ftraster/ftmisc.h (FT_MAKE_TAG): Removed, no longer needed. (FT_STATIC_BYTE_CAST): New macro. * src/smooth/ftgrays.c (FT_STATIC_CAST): Replace with... (FT_STATIC_BYTE_CAST): ... this.
Werner Lemberg 238245cd 2021-11-16T22:07:28 Fix clang++ warnings. * src/*: Initialize some variables to NULL.
Alexei Podtelezhnikov 7f8f0c1c 2021-09-02T23:30:31 [smooth, raster, sdf] Clean up initialization calls. * src/raster/ftraster.c (ft_black_init): Removed. (ft_black_new): Clean up. * src/sdf/ftbsdf.c (bsdf_raster_new): Ditto. * src/sdf/ftsdf.c (sdf_raster_new): Ditto. * src/smooth/ftgrays.c (gray_raster_new): Ditto.
Werner Lemberg c2fa51d9 2021-07-24T20:32:16 Fix some `cppcheck` warnings. * src/bzip2/ftbzip2.c (ft_bzip2_file_skip_output), src/gzip/ftgzip.c (ft_gzip_file_skip_output): Reduce scope of `delta`. * src/psaux/psintrp.c, src/psaux/psintrp.h (cf2_interpT2CharString): Add `const` to `buf` parameter. * src/raster/ftraster.c (DelOld): Add `const` to `profile` parameter. (Vertical_Sweep_Span): Reduce scope of `target`. (FT_Outline_Get_CBox): Reduce scope of `xMin`, `xMax`, `yMin`, `yMax`. * src/smooth/ftgrays.c (gray_render_conic): Reduce scope of `split`. (gray_sweep, gray_sweep_direct): Reduce scope of `area`. * src/tools/apinames.c (names_dump) <OUTPUT_WATCOM_LBC>: Reduce scope of `temp`.
Alexei Podtelezhnikov f27b4834 2021-06-30T10:54:59 * src/raster/ftraster.c (Render_Single_Pass): Simplify `band_stack'.
Alexei Podtelezhnikov 69c3516c 2021-06-29T23:51:23 [raster] Do not skip the second pass without dropout control. The second pass also fixes horizontal lines through the pixel centers. * src/raster/ftraster.c (black_TWorker): Do not use `second_pass'. (Render_Glyph): Skip the second pass only with the appropriate flag.
Alexei Podtelezhnikov 3696ac5a 2021-06-29T23:27:10 [raster] Handle sub-band stack locally. * src/raster/ftraster.c (black_TWorker): Move `band_stack' from here.. (Render_Single_Pass): ... to here and accept limit arguments. (Render_Glyph): Updated.
Alexei Podtelezhnikov c852388d 2021-06-28T23:26:10 [raster] Handle Bézier stack locally. * src/raster/ftraster.c (black_TWorker): Move `arcs' from here... (Conic_To, Cubic_To): ... to here to tighten their scope. (Bezier_Up, Bezier_Down): ... Take the current `arc' argument.
Alexei Podtelezhnikov 3a278381 2021-06-28T10:22:03 [raster] Clean up vertical sweep. * src/raster/ftraster.c (black_TWorker): Replace the current line offset with the pointer and drop the increment. (Function_Sweep_Init): Take values as arguments instead of pointers. (Vertical_Sweep_*, Horizontal_Sweep_Init, Draw_Sweep): Updated.
Alexei Podtelezhnikov fb4511eb 2021-06-26T08:49:20 [raster] Make `band_top' local variable. * src/raster/ftraster.c (black_TWorker): Move `band_top' from here... (Render_Single_Pass): ... to here, and refactor. (Render_Glyph): Updated.
Alexei Podtelezhnikov f6370e2f 2021-06-25T22:59:39 [raster] Adjust sub-band bisecting limits. We can bisect a band until it is just a single scan line. This might be slow and cause time-outs but if we need to impose limits it should be elsewhere. * src/raster/ftraster.c (Render_Single_Pass): Tweak sub-banding.
Alexei Podtelezhnikov bc1029b9 2021-06-25T18:20:57 * src/raster/ftraster.c (Render_Single_Pass): Remove dead code.
Alexei Podtelezhnikov 1e0cef9e 2021-06-24T00:19:50 [smooth, raster] Fix up and align error codes. FT_Render_Glyph picked up FAILURE or 1 returned from the raster function, which became a confusing error code. Instead, return Raster_Overflow in the unlikely event that banding does not help or another meaningful error. * src/smooth/ftgrays.c (gray_convert_glyph_inner, gray_convert_glyph): Use Raster_Overflow when the rendering pool is exhausted and return it if banding does not help. (gray_raster_render): Use Smooth_Err_Ok. * src/raster/ftraster.c (Render_Single_Pass): Return Raster_Overflow if banding does not help or another error code.
Alexei Podtelezhnikov d8ac180c 2021-06-23T23:32:02 [smooth, raster] Remove synonymous error macros. * src/smooth/ftgays.c [STANDALONE_]: s/ErrRaster_/Smooth_Err_/. (gray_convert_glyph_inner): Updated accordingly. * src/raster/ftraster.c [STANDALONE_]: Do not abbreviate error macros. (New_Profile, End_Profile, Insert_Y_Turn, Line_Up, Bezier_Up, Decompose_Curve, Draw_Sweep, Render_Single_Pass, ft_black_render): Updated accordingly.
Werner Lemberg b6e8a712 2021-01-17T07:18:48 Update all copyright notices.
Werner Lemberg c9f588be 2020-10-10T12:48:18 Document changes to last release.
Alexei Podtelezhnikov 20186d1b 2020-09-11T23:47:54 [raster] Improve the second pass (#58373). Besides dropout control the second horizontal sweep is supposed to clean up straight horizontal edges that are mishandled by the first vertical sweep when a line passes through pixel centers. This line would present as perfectly aligned span edges in the second sweep. * src/raster/ftraster.c (Horizontal_Sweep_Span): Replace the old implementation with a better one focusing on aligned span edges only.
Alexei Podtelezhnikov c3721642 2020-09-11T23:13:02 [raster] Tune SMART macro (#58352). Windows seems to perform smart dropout control at 26.6 precision. To mimick Windows independent of increased precision, we need to tweak the macro so that some close calls break down rather than up. * src/raster/ftraster.c (SMART): Tweak the macro.
Alexei Podtelezhnikov cb473313 2020-09-08T22:41:53 [raster] Introduce SMART macro. * src/raster/ftraster.c (SMART): New macro for smart dropout rounding. (Verstical_Sweep_Drop, Horizontal_Sweep_Drop): Use it.
Alexei Podtelezhnikov 3594eaee 2020-09-08T22:20:11 [raster] Improve tracing.
Priyesh Kumar 53be1753 2020-07-28T07:33:40 Fix `-Wformat' compiler warnings. * src/*: Fix format specifiers. * builds/unix/ftsystem.c (FT_Stream_Open): Ditto.
David Turner bb66c8d8 2020-07-02T11:09:57 [build] Split off more stuff from `ftconfig.h'. * builds/unix/ftconfig.h.in, builds/vms/ftconfig.h, include/freetype/config/ftconfig.h: Split off macro definitions required by the FreeType API headers to... * include/freetype/config/public-macros.h: ...this new file. * builds/unix/ftconfig.h.in, builds/vms/ftconfig.h, include/freetype/config/ftconfig.h: Split off macro definitions used by the library but not to be exposed to clients to... * include/freetype/config/compiler-macros.h: ...this new file. * include/freetype/internal/*.h, src/raster/ftraster.h: Include `compiler-macros.h' where needed.
Werner Lemberg 16586859 2020-06-13T21:15:45 Remove redundant inclusion of `ft2build.h'. * */*: Remove `#include <ft2build.h>' where possible. * include/freetype/freetype.h: Remove cpp error about missing inclusion of `ft2build.h'.
David Turner e1339133 2020-06-08T13:31:55 Make macros for header file names optional. We no longer have to take care of the 8.3 file name limit; this allows us (a) to introduce longer, meaningful file names, and (b) to avoid macro names in `#include' lines altogether since some compilers (most notably Visual C++) doesn't support this properly. */*: Replace #include FOO_H with #include <freetype/foo.h> or something similar. Also update the documentation.
David Turner 4eee1340 2020-05-18T09:16:12 Remove Jamfile files from the tree. These have not been used in a very, very long time, so better remove them. A corresponding patch will be submitted to the `freetype2-demos' repository. * src/Jamfile, src/*/Jamfile, Jamrules: Delete.
Werner Lemberg e5038be7 2020-01-19T17:05:19 Update all copyright notices.
Alexei Podtelezhnikov 0c6f61ab 2019-05-07T19:07:11 * src/raster/ftraster.c (Draw_Sweep): Unbreak.
Alexei Podtelezhnikov ea7e20fb 2019-05-07T07:00:38 * src/raster/ftraster.c: Clean-ups.
Werner Lemberg 7b841047 2019-05-04T08:13:22 Various clang 8.0 static analyzer fixes. Reported by Sender Ghost <lightside@gmx.com>. * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Catch a corner case where `edge->first' could be NULL. * src/pfr/pfrobjs.c (pfr_slot_load): Remove unnecessary test of `size'. * src/raster/ftraster.c (Draw_Sweep): Catch a corner case where `draw_right' might be NULL. * src/sfnt/ttmtx.c (tt_face_get_metrics): Fix limit test for `aadvance'. Ensure `abearing' always hold a meaningful result. * src/truetype/ttgload.c (load_truetype_glyph): Ensure `subglyph' is not NULL before accessing it. * src/truetype/ttgxvar.c (TT_Set_Named_Instance): Remove unnecessary test of `namedstyle'. * src/type42/t42parse.c (t42_parser_done): Ensure `parser->root.funcs.done' is not NULL before accessing it.
Alexei Podtelezhnikov 7a81b63a 2019-04-25T22:06:33 Optimize Bézier bisections. * src/raster/ftraster.c (Split_Conic, Split_Cubic): Use shifts and refactor. * src/smooth/ftgrays.c (gray_split_conic, gray_split_cubic): Ditto. * src/base/ftstroke.c (ft_conic_split, ft_cubic_split): Ditto. * src/base/ftbbox.c (cubic_peak): Use shifts.
Werner Lemberg 75859970 2019-02-23T10:07:09 Update all copyright notices.
Werner Lemberg f686ad46 2019-01-22T20:31:44 Update copyright years.
Alexei Podtelezhnikov d71f2bc1 2018-10-26T22:52:25 Revert "Align FreeType with standard C memory management." This reverts commit 877aa1b2cc662978aae61ed4d5c6ea8ba56b2fe7.
Alexei Podtelezhnikov 877aa1b2 2018-09-27T21:17:36 Align FreeType with standard C memory management. * include/freetype/ftsystem.h: Include FT_TYPES_H. (*FT_Alloc_Func, *FT_Realloc_Func): Use size_t for the size arguments. * src/raster/ftmisc.h: Ditto. * builds/amiga/src/base/ftsystem.c, builds/unix/ftsystem.c, * builds/vms/ftsystem.c, src/base/ftsystem.c (ft_alloc, ft_realloc): Use size_t for the size arguments. * src/base/ftdbgmem.c (ft_mem_debug_alloc, ft_mem_debug_realloc): Use FT_Offset, aka size_t, for the size arguments.
Werner Lemberg c168cc3b 2018-09-21T11:09:27 [raster] Fix disappearing vertical lines (#54589). * src/raster/ftraster.c (Vertical_Sweep_Span): Handle special case where both left and right outline exactly pass pixel centers.
Werner Lemberg 8e950680 2018-09-20T06:26:34 [base] Remove unused function `FT_GlyphLoader_CopyPoints'. * include/freetype/internal/ftgloadr.h, src/base/ftgloadr.c (FT_GlyphLoader_CopyPoints): Do it.
Alexei Podtelezhnikov 1dacbd89 2018-08-30T23:28:30 Consolidate bitmap presetting and size assessment. * include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap): Change return type. * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Return the bitmap size assessment. * src/raster/ftrend1.c (ft_raster1_render): Use it to refuse the rendering of enourmous or far-fetched outlines. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
Werner Lemberg a0dd16fb 2018-08-15T18:13:17 Don't use `trace_' prefix for FT_COMPONENT arguments. * include/freetype/internal/ftdebug.h (FT_TRACE_COMP, FT_TRACE_COMP_): New auxiliary macros to add `trace_' prefix. (FT_TRACE): Use `FT_TRACE_COMP'. */* (FT_COMPONENT): Updated.
Alexei Podtelezhnikov e16bfbec 2018-08-09T22:18:00 [raster, smooth] Reinstate bitmap size limits. This again moves outline and bitmap size checks one level up. * src/base/ftoutln.c (FT_Outline_Render): Explicitly reject enormous outlines. * src/raster/ftrend1.c (ft_raster1_render): Reject enormous bitmaps and, therefore, outlines that require them. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. * src/raster/ftraster.c (ft_black_render): Remove outline size checks. * src/smooth/ftgrays.c (gray_raster_render): Ditto. [STANDALONE]: Remove `FT_Outline_Get_CBox' copy.
Alexei Podtelezhnikov eaa5a42a 2018-06-11T21:56:23 [raster] Clean up. * src/raster/ftraster.c (black_TWorker, SCALED, Set_High_Precision): Clean up after 5-level gray removal (8dc8635874). (Vertical_Sweep_Span): Be brief.
Alexei Podtelezhnikov 50fda0be 2018-06-09T22:52:43 [raster] Deal with pitch sign earlier. * src/raster/ftraster.c (black_TWorker): Remove unused `traceG', s/bTarget/bOrigin/. (Render_Glyph): Set `ras.bOrigin' at the bottom-left corner. (Vertical_Sweep_Init, {Vertical,Horizontal}_Sweep_{Span,Drop}): Updated accordingly.
Werner Lemberg ca4e707a 2018-06-06T08:18:23 [smooth, raster] Limit bitmap size (#54019). * src/raster/ftraster.c [STANDALONE] (FT_Outline_Get_CBox): Add function. [!STANDALONE]: Include FT_OUTLINE_H. (ft_black_render): Compute CBox and reject glyphs larger than 0xFFFF x 0xFFFF. * src/smooth/ftgrays.c (gray_raster_render): Reject glyphs larger than 0xFFFF x 0xFFFF.
Nikhil Ramakrishnan 78d85b9c 2018-06-04T18:42:29 Restore missing comment lines and other minor fixes
Sender Ghost cc626772 2018-06-04T10:49:23 Restore accidentally removed, commented-out configuration options.
Werner Lemberg 9ac9060d 2018-06-03T09:01:17 [GSoC] src/*.*: Convert block comments to `light' style. This monster commit was created by applying Nikhil's scripts `docconverter.py' and `markify.py' to all C header and source files, followed up by minor manual clean-up. No change in functionality, of course. I used commit f7419907bc6044b9b7057f9789866426c804ba82 from https://github.com/nikramakrishnan/freetype-docs.git.
Werner Lemberg 125b8480 2018-05-31T10:49:05 * src/raster/ftraster.c (black_TWorker_): Remove `gTarget' field. This is no longer used.
Werner Lemberg 95149592 2018-05-02T20:27:48 Remove FT_CONFIG_OPTION_PIC and related code. */* [FT_CONFIG_OPTION_PIC]: Remove all code guarded by this preprocessor symbol. */*: Replace `XXX_GET' macros (which could be either a function in PIC mode or an array in non-PIC mode) with `xxx' arrays. * include/freetype/internal/ftpic.h, src/autofit/afpic.c, src/autofit/afpic.h, src/base/basepic.c, src/base/basepic.h, src/base/ftpic.c, src/cff/cffpic.c, src/cff/cffpic.h, src/pshinter/pshpic.c, src/pshinter/pshpic.h, src/psnames/pspic.c, src/psnames/pspic.h, src/raster/rastpic.c, src/raster/rastpic.h, src/sfnt/sfntpic.c, src/sfnt/sfntpic.h, src/smooth/ftspic.c, src/smooth/ftspic.h, src/truetype/ttpic.c, src/truetype/ttpic.h: Removed.
Werner Lemberg 0a0c2256 2018-01-02T09:33:57 Update copyright year.
Alexei Podtelezhnikov c8d8e158 2017-09-30T14:28:58 Signedness fixes in bitmap presetting. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3514. * src/raster/ftrend1.c (ft_raster1_render): Exlicitly signed height. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Explicitly unsigned subtraction.
Alexei Podtelezhnikov ae7dc1f6 2017-09-28T22:59:31 [smooth, raster] Miscellaneous cleanups. * src/raster/ftrend1.c (ft_raster1_render): Clean up the exit. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Reduce translations and clean up the exit. (ft_smooth_render_lcd, ft_smooth_render_lcd): Remove unused `error'..
Alexei Podtelezhnikov 61d1818b 2017-09-28T00:20:50 Bitmap metrics presetting [1/2]. This mainly just extracts the code for presetting the bitmap metrics from the monochrome, grayscale, and LCD renderers into a separate function. * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): New function that calculates prespective bitmap metrics for the given rendering mode. * include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap): Declare it. * src/base/ftlcdfil.c (ft_lcd_padding): New helper function that adds padding to CBox taking into account pecularities of LCD rendering. * include/freetype/ftlcdfil.h (ft_lcd_padding): Declare it. * src/raster/ftrend1.c (ft_raster1_render): Reworked to use `ft_glyphslot_preset_bitmap'. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. (ft_smooth_render_lcd, ft_smooth_render_lcd): The pixel_mode setting is moved to `ft_glyphslot_preset_bitmap'.
Alexei Podtelezhnikov f0898b92 2017-08-25T21:40:01 Swap `ALLOC_MULT' arguments (#51833). * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Updated. * src/winfonts/winfnt.c (FNT_Load_Glyph): Updated. * src/raster/ftrend1.c (ft_raster1_render): Updated.
Werner Lemberg e99b26aa 2017-05-14T21:57:27 Remove remnants of raster pool. * include/freetype/internal/ftobjs.h (FT_LibraryRec): Remove `raster_pool' and `raster_pool_size' fields. * src/base/ftobjs.c (FT_New_Library), src/raster/ftrend1.c (ft_raster1_init), src/smooth/ftsmooth.c (ft_smooth_init): Updated.
Werner Lemberg 9931175d 2017-03-18T07:06:49 Improve `make multi'. * src/autofit/aflatin2.c: Guard file with FT_OPTION_AUTOFIT2. * src/base/ftmac.c: Guard more parts of the file with FT_MACINTOSH. * src/psaux/afmparse.c: Guard file with T1_CONFIG_OPTION_NO_AFM. * src/sfnt/pngshim.c: Guard file with TT_CONFIG_OPTION_EMBEDDED_BITMAPS also. * src/sfnt/ttbdf.c: Avoid empty source file. * src/sfnt/ttpost.c: Guard file with TT_CONFIG_OPTION_POSTSCRIPT_NAMES. * src/sfnt/ttsbit.c: Guard file with TT_CONFIG_OPTION_EMBEDDED_BITMAPS. * src/truetype/ttgxvar.c, src/truetype/ttinterp.c: Avoid empty source file. * src/truetype/ttsubpix.c: Guard file with TT_USE_BYTECODE_INTERPRETER also. * src/type1/t1afm.c: Guard file with T1_CONFIG_OPTION_NO_AFM. * src/autofit/autofit.c, src/base/ftbase.c, src/cache/ftcache.c, src/cff/cff.c, src/cid/type1cid.c, src/gxvalid/gxvalid.c, src/pcf/pcf.c, src/pfr/pfr.c, src/psaux/psaux.c, src/pshinter/pshinter.c, src/psnames/psnames.c, src/raster/raster.c, src/sfnt/sfnt.c, src/smooth/smooth.c, src/truetype/truetype.c, src/type1/type1.c, src/type42/type42.c: Remove conditionals; sort entries.
Werner Lemberg 563ae780 2017-01-04T20:16:34 Update copyright year.
Werner Lemberg 37c72f66 2016-12-25T22:55:25 Minor formatting.
Werner Lemberg 45cad2e5 2016-09-28T19:10:52 More FT_ZERO usage. * src/gxvalid/gxvcommn.c (gxv_ClassTable_validate): s/ft_memset/FT_MEM_ZERO/. * src/psaux/t1decode.c (t1_decoder_parse_charstrings): s/ft_memset/FT_ARRAY_ZERO/. * src/raster/ftraster.c (FT_ZERO): Define. (ft_black_new): Use it. * src/raster/ftrend1.c (ft_raster1_get_cbox): s/FT_MEM_ZERO/FT_ZERO/. * src/smooth/ftgrays.c (FT_ZERO): Define. (gray_raster_new): Use it. * src/smooth/ftsmooth.c (ft_smooth_get_cbox): s/FT_MEM_ZERO/FT_ZERO/.
Werner Lemberg c95b7652 2016-09-17T17:12:50 s/0/NULL/ for function pointers; comments, formatting.
Alexei Podtelezhnikov 3e1f7bc5 2016-06-18T22:13:23 Fresh typos.
Alexei Podtelezhnikov 72a06531 2016-06-17T23:10:22 [raster, smooth] Handle FT_RENDER_POOL_SIZE better. * src/raster/ftraster.c (FT_MAX_BLACK_POOL): New macro. (ft_black_render): Updated. * src/smooth/ftgrays.c (FT_MAX_GRAY_POOL): New macro. (gray_raster_render): Updated.
Werner Lemberg 31f2dc19 2016-03-23T07:31:59 [raster, smooth] Directly test outline size (#47500). This improves stand-alone compilation. * src/base/ftoutln.c (FT_Outline_Render): Move cbox size test to... * src/raster/ftraster.c (ft_black_render), src/smooth/ftgrays.c (gray_raster_render): ...these functions.
Werner Lemberg e9181aba 2016-03-23T06:58:20 [raster, smooth] Fix some clang sanitizer runtime issues. * src/raster/ftraster.c (ft_black_reset, ft_black_set_mode, ft_black_render): Harmonize signatures with `ftimage.h'. * src/smooth/ftgrays.c (gray_raster_render, gray_raster_reset): Ditto.
Werner Lemberg 9adeab64 2016-01-13T11:54:10 Update copyright year.
Werner Lemberg 9d0b76d7 2016-01-12T22:27:29 Don't use macro names that start with `_[A-Z]' [2/3]. Such macro names are reserved for both C and C++. * include/freetype/ftimage.h, src/raster/ftraster.c, src/smooth/ftgrays.c, src/smooth/ftgrays.h: s/_STANDALONE_/STANDALONE_/.
Werner Lemberg 37412ff9 2016-01-12T21:37:13 Don't use macro names that contain `__' [1/2]. Such macro names are reserved for both C and C++. */*: Replace macros of the form `__XXX_H__' with `XXX_H_'.
Werner Lemberg 52aad9df 2015-09-29T12:38:11 [raster] Minor style fix.
Alexei Podtelezhnikov 5a6dc872 2015-09-04T23:14:46 [raster,smooth] Microoptimizations. * src/raster/ftraster.c (Insert_Y_Turn, Finalize_Profile_Table, Beziier_Up, ): Use do-while loops. * src/smooth/ftgrays.c (gray_render_scanline, gray_render_line, gray_convert_glyph): Ditto.
Werner Lemberg 91d59169 2015-08-18T06:04:36 [raster] Remove last remnants of `raster5' driver. * src/raster/ftrend1.h (ft_raster5_renderer_class): Removed. * src/raster/rastpic.c, src/raster/rastpic.h (ft_raster5_renderer_class_pic_init, ft_raster5_renderer_class_pic_free): Removed.
Werner Lemberg 6343ba22 2015-08-01T07:53:48 Fix some bugs found by clang's `-fsanitize=undefined' (#45661). * src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Only accept positive values from header. Check overflow. * src/base/ftoutln.c (SCALED): Correctly handle left-shift of negative values. * src/bdf/bdf.h (_bdf_glyph_modified, _bdf_set_glyph_modified, _bdf_clear_glyph_modified): Use unsigned long constant. * src/bdf/bdfdrivr.c (BDF_Size_Select, BDF_Glyph_Load): Don't left-shift values that can be negative. * src/pcf/pcfdrivr.c (PCF_Size_Select, PCF_Glyph_Load): Don't left-shift values that can be negative. * src/raster/ftraster.c (SCALED): Correctly handle left-shift of negative values. * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Don't left-shift values that can be negative. * src/truetype/ttgload.c (TT_Load_Composite_Glyph, compute_glyph_metrics, load_sbit_image): Don't left-shift values that can be negative.
Werner Lemberg f9be567f 2015-07-09T15:10:31 Better support of user-supplied C++ namespaces. See http://lists.nongnu.org/archive/html/freetype-devel/2015-07/msg00008.html for a rationale. * src/autofit/afpic.h, src/base/basepic.h, src/cff/cffpic.h, src/pshinter/pshpic.h, src/psnames/pspic.h, src/raster/rastpic.h, src/sfnt/sfntpic.h, src/smooth/ftspic.h, src/truetype/ttpic.h (FT_BEGIN_HEADER, FT_END_HEADER): Move macro calls to not enclose header files that contain FT_{BEGIN,END}_HEADER macros by themselves. * src/autofit/aftypes.h [FT_DEBUG_AUTOFIT]: Include FT_CONFIG_STANDARD_LIBRARY_H earlier. * src/truetype/ttpic.h: Include FT_INTERNL_PIC_H.
Werner Lemberg 392cf22f 2015-06-25T13:04:57 Another adjustment to header locations. This change is a result of a discussion thread on freetype-devel http://lists.nongnu.org/archive/html/freetype-devel/2015-06/msg00041.html Re-introduce the `freetype2' subdirectory for all FreeType header files after installation, and rename the `freetype2' subdirectory in the git repository to `freetype'. * include/freetype2: Renamed to... * include/freetype: This. * CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS, PRIVATE_HEADERS): Updated. Update creation of `ftconfig.h'. Install generated `ftconfig.h'. * Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated. * builds/amiga/include/config/ftconfig.h, builds/freetype.mk (PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work), builds/unix/freetype2.in: Updated. * builds/unix/freetype-config.in: Updated. * builds/unix/configure.raw: Don't check for `rmdir'. * builds/unix/unix-def.in (DELDIR): Use `rm -rf', which is portable according to the autoconf info manual. * builds/unix/install.mk (install, uninstall, distclean_project_unix): Update and simplify. * builds/wince/*, builds/windows/*: Updated. * devel/ft2build.h, include/ft2build.h: Updated. * include/freetype2/config/ftheader.h, include/freetype2/internal/ftserv.h, include/freetype2/internal/internal.h: Update all header file macros. * src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated. * docs/*: Updated.
Werner Lemberg 8502c98b 2015-06-22T06:35:23 Fix Savannah bug #45097. We no longer `pollute' the namespace of possible header file names; instead we move `ft2build.h' up by one level so that it gets installed in the default include directory (e.g., /usr/local/include). After this commit, only `ft2build.h' stays in the compiler's include path. No visible changes for the user who follows the standard FreeType header inclusion rules. * include/*: Move to ... * include/freetype2/*: This directory, except `ft2build.h'. * CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS, PRIVATE_HEADERS), Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated. * builds/amiga/include/config/ftconfig.h, builds/freetype.mk (PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work), builds/unix/install.mk (install, uninstall), builds/unix/freetype2.in: Updated. * builds/unix/freetype-config.in: Updated. Emit -I directory only if it is not `/usr/include'. * builds/wince/*, builds/windows/*: Updated. * devel/ft2build.h, include/ft2build.h: Updated. * include/freetype2/config/ftheader.h, include/freetype2/internal/ftserv.h, include/freetype2/internal/internal.h: Update all header file macros. * src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated. * docs/*: Updated.
Werner Lemberg 31d97df9 2015-06-21T19:12:12 Make Jam support work again. This is just very basic stuff and just a little bit tested on GNU/Linux only. I won't delve into this since I'm not a Jam user. * Jamfile: Call `HDRMACRO' for `ftserv.h' also. (DEFINES): Replace with... (CCFLAGS): ... this. * src/Jamfile: Don't call `HDRMACRO' for `internal.h'; this is already handled in the top-level Jamfile. * src/autofit/Jamfile (DEFINES): Replace with... (CCFLAGS): ... this. (_sources): Add missing files. * src/cache/Jamfile: Don't call `HDRMACRO' for `ftcache.h'; it no longer contains macro header definitions. * src/base/Jamfile, src/cff/Jamfile, src/sfnt/Jamfile, src/truetype/Jamfile (_sources): Add missing files.
Werner Lemberg d1ade6d1 2015-06-02T11:44:52 [raster] Add more tracing. * src/raster/ftraster.c (FT_TRACE7) [_STANDALONE_]: Define. (Vertical_Sweep_Span, Vertical_Sweep_Drop, Horizontal_Sweep_Span, Horizontal_Sweep_Drop, Render_Glyph): Add tracing calls.
Werner Lemberg 851e8151 2015-03-01T19:27:09 Various compiler warning fixes for `make multi'. * src/autofit/afcjk.c (af_cjk_hints_compute_blue_edges), src/autofit/aflatin.c (af_latin_hint_compute_blue_edges, af_latin_hint_edges), src/autofit/aflatin2.c (af_latin2_hints_compute_blue_edges, af_latin2_hint_edges): Declare as `static'. * src/cache/ftccmap.c (FTC_CMAP_QUERY_HASH, FTC_CMAP_NODE_HASH): Removed. Unused. * src/cache/ftcimage.c: Include FT_INTERNAL_OBJECTS_H. * src/cache/ftcmanag.c (FTC_LRU_GET_MANAGER): Removed. Unused. * src/cff/cf2intrp.c: Include `cf2intrp.h'. * src/cff/cffdrivr.c (PAIR_TAG): Removed. Unused. * src/gzip/ftgzip.c (NO_DUMMY_DECL): Removed. Unused. * src/psaux/afmparse.c (afm_parser_read_int): Declare as `static'. * src/pshinter/pshalgo.c (STRONGER, PSH_ZONE_MIN, PSH_ZONE_MAX): Removed. Unused. * src/raster/ftraster.c (Render_Glyph): Declare as `static'. * src/sfnt/ttpost.c (load_format_20): Fix signedness warning. * src/truetype/ttdriver.c (PAIR_TAG): Removed. Unused. * src/truetype/ttsubpix.c (is_member_of_family_class, is_member_of_style_class): Declare as `static'. * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Declare as `static'. * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): Declare as `static'. (T1_FIELD_COUNT): Removed. Unused. * src/type1/t1parse.h (T1_Done_Table): Removed. Unused. * src/type42/t42parse.c (T1_Done_Table): Removed. Unused.
Werner Lemberg 4d1f7af1 2015-02-23T07:04:36 [smooth, raster] Re-enable standalone compilation. * src/raster/ftraster.c (FT_RENDER_POOL_SIZE, FT_MAX) [_STANDALONE_]: Define macros. * src/smooth/ftgrays.c (FT_RENDER_POOL_SIZE, FT_MAX, FT_ABS, FT_HYPOT) [_STANDALONE_]: Define macros.
Werner Lemberg a974e9ac 2015-02-22T21:02:13 * src/raster/ftraster.c: Use the file's typedefs everywhere.
Werner Lemberg ca96fe01 2015-02-22T20:05:04 [raster] Signedness fixes. * src/raster/ftraster.c, src/raster/ftrend1.c: Apply.
Behdad Esfahbod 264b5e46 2015-01-23T21:23:55 [raster] Handle `FT_RASTER_FLAG_AA' correctly. This fixes a breakage caused by the commit `[raster] Remove 5-level gray AA mode from monochrome rasterizer.'. Problem reported by Markus Trippelsdorf <markus@trippelsdorf.de> and octoploid <octoploid@yandex.com>. * src/raster/ftraster.c (ft_black_render): Handle `FT_RASTER_FLAG_AA'. * src/raster/ftrend1.c (ft_raster1_render): Remove gray AA mode remnants.
Chris Liddell 942aa5ff 2015-01-18T07:29:48 [raster] Fix Savannah bug #44022. Add fallback for glyphs with degenerate bounding boxes. If a glyph has only one very narrow feature, the bbox can end up with either the width or height of the bbox being 0, in which case no raster memory is allocated and no attempt is made to render the glyph. This is less than ideal when the drop-out compensation in the rendering code would actually result in the glyph being rendered. This problem can be observed with the `I' glyph (gid 47) in the Autodesk RomanS TrueType font. * src/raster/ftrend1.c (ft_raster1_render): Add a fallback if either dimension is zero to explicitly round up/down (instead of simply round).
Werner Lemberg f57fc59e 2015-01-17T20:41:43 Run `src/tools/update-copyright'.
Behdad Esfahbod c242fe41 2015-01-14T18:48:14 [raster] Fix uninitialized memory access. Apparently `ras.cProfile' might be uninitialized. This will be the case if `ras.top == ras.cProfile->offset', as can be seen in `End_Profile'. The overshoot code introduced in a change `Fix B/W rasterization of subglyphs with different drop-out modes.' (from 2009-06-18) violated this, accessing `ras.cProfile->flags' unconditionally just before calling `End_Profile' (which then detected that `cProfile' is uninitialized and didn't touch it). This was harmless, and was not detected by valgrind before because the objects were allocated on the `raster_pool', which was always initialized. With recent change to allocate raster buffers on the stack, valgrind now reported this invalid access. * src/raster/ftraster.c (Convert_Glyph): Don't access an uninitialized `cProfile'.
Behdad Esfahbod a773c304 2015-01-14T18:16:20 [raster] Allocate render pool for mono rasterizer on the stack. Instead of using the `render_pool' member of `FT_Library' that is provided down to the rasterizer, completely ignore that and allocate needed objects on the stack instead. With this patch, rasterizing glyphs from different faces from different threads doesn't crash in the monochrome rasterizer. * src/raster/ftraster.c (black_TRaster): Remove `buffer', `buffer_size', and `worker' members. (ft_black_render): Create `buffer' locally. (ft_black_reset): Updated.
Behdad Esfahbod 8dc86358 2015-01-14T18:06:22 [raster] Remove 5-level gray AA mode from monochrome rasterizer. It was off by default and couldn't be turned on at runtime. And the smooth rasterizer superceded it over ten years ago. No point in keeping. Comments suggested that it was there for compatibility with FreeType 1. 550 lines down. * src/raster/ftraster.c (FT_RASTER_OPTION_ANTI_ALIASING, RASTER_GRAY_LINES): Remove macros and all associated code. (black_TWorker): Remove `gray_min_x' and `gray_max_x'. (black_TRaster): Remove `grays' and `gray_width'. (Vertical_Sweep_Init, Vertical_Sweep_Span, Vertical_Sweep_Drop, ft_black_render): Updated. * src/raster/ftrend1.c (ft_raster1_render): Simplify code. (ft_raster5_renderer_class): Removed.
Werner Lemberg 36d03c9f 2015-01-12T11:26:30 Fix Savannah bug #43976. Assure that FreeType's internal include directories are found before `CPPFLAGS' (which might be set by the user in the environment), and `CPPFLAGS' before `CFLAGS'. * builds/freetype.mk (FT_CFLAGS): Don't add `INCLUDE_FLAGS'. (FT_COMPILE): Make this a special variable for compiling only the files handled in `freetype.mk'. (.c.$O): Removed, unused. * src/*/rules.mk (*_COMPILE): Fix order of include directories.
Werner Lemberg 3e86711e 2014-11-25T09:01:07 [Savannah bug #43682] Adjust some renderer callbacks. * src/raster/ftraster.c (ft_black_set_mode): Change return type to `int' to stay in sync with `FT_Renderer_SetModeFunc' prototype. * src/smooth/ftgrays.c (gray_raster_set_mode): New dummy function for orthogonality. (ft_grays_raster): Use it.
Werner Lemberg b3500af7 2014-11-19T21:28:21 Change some fields in `FT_Bitmap' to unsigned type. This doesn't break ABI. * include/ftimage.h (FT_Bitmap): Make `rows', `width', `num_grays', `pixel_mode', and `palette_mode' unsigned types. * src/base/ftbitmap.c: Updated. (FT_Bitmap_Copy): Fix casts. * src/cache/ftcsbits.c, src/raster/ftraster.c, src/sfnt/pngshim.c: Updated.
Werner Lemberg 426f0e04 2014-04-24T07:13:31 Minor.
Werner Lemberg f193637f 2014-04-23T08:22:33 * src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode. This spot has been missed while introducing support for various drop-out modes years ago (including no drop-out mode, which this commit fixes). Problem reported by Patrick Thomas <pthomas505@gmail.com>.
Sean McBride 7be2a94a 2014-02-08T13:55:38 Fix clang static analyzer and compiler warnings. * src/autofit/afhints.c (af_glyph_hints_align_weak_points), src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>, src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style), src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load), src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next, tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead code. * src/autofit/afmodule.c (af_property_get_face_globals, af_property_set, af_property_get), src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Make functions static. * src/base/ftobjs.c (ft_remove_renderer): Protect against library == NULL. (ft_property_do): Make function static. * src/base/ftrfork.c: Include `ftbase.h'. * src/sfnt/ttsbit.c (tt_face_load_sbix_image) [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c (T1_Compute_Max_Advance): Avoid compiler warning. * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of variable.
Werner Lemberg fae38207 2013-11-13T08:55:46 Simplify header file hierarchy. This large patch changes the header file directory layout from `include/freetype/...' to `include/...', effectively removing one level. Since the file `ft2build.h' is also located in `include' (and it stays there even after installation), all FreeType header files are now in a single directory. Applications that use (a) `freetype-config' or FreeType's `pkg-config' file to get the include directory for the compiler, and (b) the documented way for header inclusion like #include <ft2build.h> #include FT_FREETYPE_H ... don't need any change to the source code. * include/freetype/*: Move up to... * include/*: ... this directory. * builds/amiga/include/freetype/*: Move up to... * builds/amiga/include/*: ... this directory. */*: Essentially do `s@/freetype/@/@' where appropriate. * CMakeList.txt: Simplify. * builds/unix/freetype-config.in, builds/unix/freetype2.in: For `--cflags', return a single directory. * builds/unix/install.mk (install): No longer try to remove `cache' and `internal' subdirectories; instead, remove the `freetype' subdirectory.
Werner Lemberg c06889eb 2013-06-12T10:58:06 More compiler warning fixes. */*: Use cast to `FT_Bool' (or `Bool') where appropriate.
Werner Lemberg badf3178 2013-06-06T09:16:38 Next round of compiler fixes. * builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init): Add proper cast. * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix cast. * include/freetype/internal/ftstream.h: Decorate stream and frame macros with `FT_Long' and `FT_ULong' as appropriate. * src/base/ftrfork.c (raccess_guess_darwin_hfsplus, raccess_guess_darwin_newvfs): Use cast. * src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast. * src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast. * src/cache/ftcmanag.h (FTC_ManagerRec): Ditto. * src/cff/cf2arrst.c (cf2_arrstack_setNum_Elements): Use cast. * src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto. * src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto. * src/cid/cidparse.c (cid_parser_new): Use cast. * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast. * src/psaux/psobjs.c (reallocate_t1_table): Fix argument type. * src/raster/ftraster.c (ft_black_reset): Use cast. * src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast. (ALL_POINTS): Fix cast. * src/type1/t1driver.c (t1_ps_get_font_value): Add casts. * src/type1/t1parse.c (T1_Get_Private_Dict): Add cast.
Werner Lemberg 8d8508e4 2013-06-04T13:09:01 Missed some cppcheck items.
Werner Lemberg dc624ca4 2013-06-04T10:30:48 Apply fixes for cppcheck nitpicks. http://cppcheck.sourceforge.net/ Note that the current version heavily chokes on FreeType, delivering even wrong results. I will report those issues to the cppcheck team so that a newer version gives improved results hopefully. */* Improve variable scopes. */* Remove redundant initializations which get overwritten. * src/base/ftmac.c ,builds/mac/ftmac.c (count_faces_scalable): Remove unused variable. * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero. * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate): Remove functionless code. * src/tools/ftrandom.c (main): Fix memory leak.
Werner Lemberg 073a0e29 2013-05-05T10:41:20 [raster] Fix clang issues. Fix suggested by <octoploid@yandex.com>. * src/raster/ftraster.c (ULong): New typedef. (SCALED): Add proper cast.
Werner Lemberg 762bf19a 2013-03-24T08:37:12 Typo.
Werner Lemberg 5ea06ce0 2013-03-17T08:14:46 Whitespace.