freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Git][freetype/freetype][gsoc-anurag-2023] 34 commits: Mark FT_Renderer_


From: Anurag Thakur (@AdbhutDev)
Subject: [Git][freetype/freetype][gsoc-anurag-2023] 34 commits: Mark FT_Renderer_Class::raster_class as pointer to const
Date: Tue, 08 Aug 2023 20:02:43 +0000

Anurag Thakur pushed to branch gsoc-anurag-2023 at FreeType / FreeType

Commits:

  • 4e1c0e8f
    by Ben Wagner at 2023-06-05T12:06:24-04:00
    Mark FT_Renderer_Class::raster_class as pointer to const
    
    The `FT_DEFINE_RASTER_FUNCS` macro declares a `const FT_Raster_Funcs`.
    The address of the definition is taken and assigned to
    `FT_Renderer_Class::raster_class` which is currently `FT_Raster_Funcs*`.
    Until recently the `const` was cast away and with the removal of the
    cast there are now warnings about dropping this `const`. Instead of
    adding back the casts, make `FT_Renderer_Class::raster_class` a pointer
    to const, as is done with pointers in other interfaces.
    
    * include/freetype/ftrender.h (FT_Renderer_Class_): mark `raster_class`
    as const.
    
  • 86d0ca24
    by Werner Lemberg at 2023-06-09T05:38:49+02:00
    [sdf] Correct handling of empty glyphs.
    
    This is a refinement of commit 7b3ebb9.
    
    * src/sdf/ftsdfrend.c (ft_sdf_render): Goto 'Exit' instead of directly
    returning.
    (fd_bsdf_render): Ditto, also taking care of setting `FT_GLYPH_OWN_BITMAP`
    correctly.
    
  • 5c00a468
    by suzuki toshiya at 2023-06-09T07:36:49+02:00
    Comment fixes.
    
  • e4586d96
    by Werner Lemberg at 2023-06-24T08:11:05+02:00
    * Version 2.13.1 released.
    ==========================
    
    Tag sources with `VER-2-13-1'.
    
    * docs/VERSION.TXT: Add entry for version 2.13.1.
    * docs/CHANGES: Updated.
    * docs/release, docs/README, builds/macs/README: Updated.
    
    * README, src/base/ftver.rc, builds/windows/vc2010/index.html,
    builds/windows/visualc/index.html, builds/windows/visualce/index.html,
    builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/index.html,
    docs/freetype-config.1: s/2.13.0/2.13/1/, s/2130/2131/.
    
    * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
    
    * builds/unix/configure.raw (version_info): Set to 26:0:20.
    * CMakeLists.txt (VERSION_PATCH): Set to 1.
    
    * subprojects/libpng.wrap, subprojects/zlib.wrap, subprojects/dlg: Updated.
    
  • 355e9197
    by Hugh McMaster at 2023-07-06T14:22:15+02:00
    [gzip] Don't compile internal zlib development files when using system zlib.
    
    `src/gzip/rules.mk` compiles the internal zlib sources even when using the
    zlib development files provided by a host system.  If the internal zlib
    development files are not present, FreeType fails to build from source.
    
    This patch ensures the internal zlib development files are only
    prerequisites when not using zlib development files on a host system.
    
    * src/gzip/rules.mk (GZIP_DRV_SRCS): Define conditionally.
    
  • dec2743e
    by Hin-Tak Leung at 2023-07-08T05:39:25+02:00
    * src/truetype/ttgload.c (TT_Hint_Glyph): More mostly cosmetic update.
    
    This is a follow-up to commit 49c74ac02, which creates a new local variable
    "exec = loader->exec", and shortening a lot of "loader->exec".  This commit
    does two more such changes missed in that first commit.
    
    Signed-off-by: Hin-Tak Leung <htl10@users.sourceforge.net>
    
  • 26a7f047
    by Skef Iterum at 2023-07-14T11:28:24+02:00
    [cff] Make blend operator work with floats in private dicts.
    
    The CFF2 blend operator takes N default values and corresponding
    sets of deltas and pushes N values specific to a designspace
    location.  CFF has a floating point numeric type and the FreeType
    blending code was not converting those into its internal 16.16
    Fixed type format.
    
    Fixes #1243.
    
    * src/cff/cffparse.c (do_fixed): Handle floating point numbers.
    Also fix scaling overflow check for integer-to-fixed conversion.
    
    * src/cff/cffload.c (cff_blend_doBlend): Updated.
    
  • 85167dbd
    by Ben Wagner at 2023-07-14T14:52:20+00:00
    [woff2] Remove sfnt size guess check
    
    In WOFF the `totalSfntSize` must be correct, however in WOFF2 this value
    is now just a hint and a conforming implementation must not reject
    otherwise valid data if the `totalSfntSize` turns out not to be exact.
    
    * src/sfnt/sfwoff2.c (woff2_open_font): remove check that uncompressed
    woff2 data would fit in the sfnt size guess.
    
    Fixes: #1235
    
  • 3c92e7bf
    by Werner Lemberg at 2023-07-14T18:58:55+02:00
    [cff] Fix compiler warning.
    
    * src/cff/cffparse.c, src/cff/cffparse.h: Make `cff_parse_fixed` a local
    function.
    
  • 336503df
    by Werner Lemberg at 2023-07-16T07:40:32+02:00
    [woff2] Avoid allocation bomb.
    
    This is a fix for commit 85167dbd5, reported as
    
      https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60615
    
    * src/sfnt/sfwoff2.c (MAX_SFNT_SIZE): New macro.
    (woff2_open_font): Use it to limit the maximum size of an uncompressed WOFF2
    font.
    
  • dd3c9c5f
    by Ben Wagner at 2023-07-18T13:34:09-04:00
    [woff2] Clean up on large brotli expansion
    
    * src/sfnt/sfwoff2.c (woff2_open_font): set error and goto cleanup
    
    Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60711
    
  • e8aa5af9
    by Jouk Jansen at 2023-07-19T13:41:04+02:00
    vms_make.com: Add `/warn=noinfo` to `CFLAGS`.
    
    This reduces enormously the informationals while compiling on x86_64 (i.e.,
    which `.h` file is inluded form where).
    
  • 5769f13a
    by Jouk Jansen at 2023-07-19T13:41:04+02:00
    vms_make.com: Make use of additional libraries optional.
    
    Check whether `.olb` files are present.
    
    Also check for the HarfBuzz library.
    
  • 7c542d02
    by Jouk Jansen at 2023-07-21T21:31:28+02:00
    * src/smooth/ftgrays.c (FT_SSE2): Fix definition for VMS.
    
  • f7ae7e88
    by Jouk Jansen at 2023-07-21T21:33:20+02:00
    * vms_make.com: Fix typos.
    
  • 9e3c5d7e
    by Jouk Jansen at 2023-07-21T21:36:57+02:00
    * vms_make.com: Provide separate library compiled with C++.
    
    Some types on OpenVMS x86_64 (for example, `long') have different sizes
    depending on whether compiled with either C or C++.  In particular,
    X-Windows applications crash if linked with the C++ version.
    
    This patch makes `vms_make.com` create a second version of the FreeType
    library compiled with C++ if OpenVMS is running on the x86_64 platform.
    
  • 5b7e45ac
    by Alexei Podtelezhnikov at 2023-07-27T15:06:38+00:00
    [truetype] Remove Infinality for good.
    
    Remove everything `#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY`,
    which was undefined for a while now.
    
    * include/freetype/internal/tttypes.h: Ditto.
    * src/truetype/truetype.c: Ditto.
    * src/truetype/ttdriver.c: Ditto.
    * src/truetype/ttgload.c: Ditto.
    * src/truetype/ttinterp.c: Ditto.
    * src/truetype/ttinterp.h: Ditto.
    * src/truetype/ttobjs.c: Ditto.
    * src/truetype/ttsubpix.[ch]: Remove files.
    * src/truetype/rules.mk: Don't mention "ttsubpix.c".
    
  • 1ecfd219
    by Alexei Podtelezhnikov at 2023-07-27T16:12:28+00:00
    [truetype] Remove Infinality for good (remaining bits).
    
    * src/truetype/ttobjs.h: Remove remaining fields.
    * src/truetype/ttinterp.c: Do not initialize them.
    * include/freetype/internal/tttypes.h: Remove descriptions.
    
  • b2584c73
    by Alexei Podtelezhnikov at 2023-07-28T22:35:58-04:00
    [truetype] Reduce v40 footprint.
    
    *  src/truetype/ttgload.c (TT_HInt_Glyph, tt_loader_set_pp,
    tt_loader_init): Refactor code.
    
  • 95a87208
    by Alexei Podtelezhnikov at 2023-08-01T22:48:31-04:00
    * src/base/ftobjs.c (open_face_from_buffer): Silence `maybe-uninitialized`.
    
    We never call this function without a `driver_name` (#1245).
    
  • 3829fdaa
    by Ben Wagner at 2023-08-04T11:41:23-04:00
    Avoid overflow in COLR bounds checks.
    
    The values read into `base_glyphs_offset_v1` and `layer_offset_v1` may
    be in the range 0xFFFFFFFD-0xFFFFFFFF. On systems where `unsigned long`
    is 32 bits adding 4 to such values will wrap and pass bounds checks but
    accessing values at such offsets will be out of bounds.
    
    On the other hand `table_size` has already been tested to be at least
    `COLRV1_HEADER_SIZE` (34) so it is safe to subtract 4 from it.
    
    * src/sfnt/ttcolr.c (tt_face_load_colr): subtract 4 from `table_size`
    instead of adding 4 to font data offsets in bounds checks
    
    Fixes: https://crbug.com/1469348
    
  • a78906fb
    by Anurag Thakur at 2023-08-09T01:32:15+05:30
    [dense] Add files for new 'dense' module
    
    Breakdown of what the files will contain
    
    * src/dense/ftdenserend.c, src/dense/ftdenserend.h: The 'dense' renderer.
    
    * src/dense/ftdense.c, src/dense/ftdense.h: The rasterizer for the
    'dense' renderer.
    
    * src/dense/ftdenseerrs.h: Common error defines.
    
    * src/dense/dense.c: For building a single object of the entire module.
    
  • f6810999
    by Anurag Thakur at 2023-08-09T01:32:15+05:30
    [dense] Populate headers for 'dense' module
    
    * src/dense/ftdenserend.h (ft_dense_renderer_class): New Structures
    
    * src/dense/ftdense.h (dense_worker): New Structure
    (dense_render_line, dense_render_quadratic, dense_render_cubic): New
    function declarations
    (ft_dense_raster): Export dense raster funcs
    
    * src/dense/ftdenseerrs.h: Add module error setup
    
  • abce0cab
    by Anurag Thakur at 2023-08-09T01:32:15+05:30
    [dense] Add 'dense' renderer
    
    * src/dense/ftdenserend.c: Add 'dense' renderer along with its interface
    functions.
    
    (ft_dense_set_mode, ft_dense_transform, ft_dense_get_cbox, ft_dense_init,
    ft_dense_done, ft_dense_render)
    
  • f2ff1dc3
    by Anurag Thakur at 2023-08-09T01:32:15+05:30
    [dense] Add rasterizer functions
    
    * src/dense/ftdense.c: (ONE_PIXEL, TRUNC, UPSCALE, DOWNSCALE,
    FT_SWAP, FT_MIN, FT_MAX, FT_ABS): New Macros
    
    (dense_move_to, dense_line_to, dense_conic_to): Added outline
    decomposing functions
    
    (dense_raster_new, dense_raster_done, dense_raster_reset,
    dense_raster_set_mode, dense_raster_render): Added interface
    functions
    
  • 5e681678
    by Anurag Thakur at 2023-08-09T01:32:15+05:30
    [dense] Add drawing functions to rasterizer
    
    * src/dense/ftdense.c: (dense_render_line, dense_render_quadratic,
    dense_render_cubic, dense_render_glyph, dense_raster_render, Lerp):
    New Functions
    
  • 2504e2de
    by Anurag Thakur at 2023-08-09T01:32:15+05:30
    [dense] Enable module compilation
    
    * src/dense/ftdense.c: Redefine FT_SWAP to fix compilation error
    
    * src/include/freetype/config/ftmodule.h: Added ft_dense_renderer_class
    
    * src/dense/dense.c: Build single object of module
    
    * modules.cfg: Added 'dense' RASTER_MODULE
    
    * src/dense/module.mk, src/dense/rules.mk: Added Makefile
    
    * CMakeLists.txt: Added 'dense.c' to compilation files
    
  • 70d6a8ef
    by Anurag Thakur at 2023-08-09T01:32:15+05:30
    [dense] Add SIMD support to rasterizer
    
    * src/dense/ftdense: Use SSE4.1 for final accumulation step
    (FT_SSE4_1): Macro which checks if SSE4.1 is available
    
    * src/dense/rules.mk: Enable linking for SSE4.1
    
  • 0aa7485b
    by Anurag Thakur at 2023-08-09T01:32:15+05:30
    [dense] Migrate line drawing and accumulation to fixed-point
    
    * src/dense/ftdense.h: (FT26D6, FT20D12): New typedefs
    
    * src/dense/ftdense.c: dense_render_line, dense_render_glyph now
    use fixed-point numbers for calculation
    
    Disabled SIMD for now
    
  • eaf09d95
    by Anurag Thakur at 2023-08-09T01:32:15+05:30
    [dense] Re-enable SIMD to work with fixed-point
    
    * src/dense/ftdense.c: Use integer SIMD functions for accumulation
    
    * src/dense/ftdense.h: Change types of FT26D6, FT20D12 to better fit
    their usage
    
  • d2be7657
    by Anurag Thakur at 2023-08-09T01:32:15+05:30
    [dense] Add optimization for vertical lines
    
    * src/dense/ftdense.c: Optimize line drawing when a vertical line is encountered
    
  • f7f7eb08
    by Anurag Thakur at 2023-08-09T01:32:15+05:30
    [dense] Add optimization for division
    
    * src/dense/ftdense.c: FT_UDIV, FT_UDIVPREP macros taken from smooth
    rasterizer, help optimize fixed-point division
    
  • f1550424
    by Anurag Thakur at 2023-08-09T01:32:15+05:30
    [dense] Add -msse4.1 to compile with CMake
    
  • 4769e58b
    by Anurag Thakur at 2023-08-09T01:32:15+05:30
    [dense] Add compilation flags for meson
    

30 changed files:

The diff was not included because it is too large.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]