src/hb-directwrite.cc

Branch


Log

Author Commit Date CI Message
Benjamin Otte 567a0307 2025-06-13T10:39:37 dwrite: Implement hb_face_reference_blob()
Khaled Hosny ea6a172f 2025-03-24T00:33:53 11.0.0
Khaled Hosny 8d62ad3b 2025-03-23T15:27:36 [directwrite] Don’t release IDWriteFace pass to hb_directwrite_font_create That was a leftover from previous code and is incorrect now as we would be double releasing it.
Behdad Esfahbod b159f5c7 2025-03-22T16:46:43 [directwrite] Fix docs
Behdad Esfahbod c274ee7b 2025-03-22T16:02:39 [directwrite] Add hb_font_t setter/getter from IDWriteFontFace Changed API: +hb_directwrite_font_create() New API: +hb_directwrite_font_get_dw_font_face()
Behdad Esfahbod f0b0d92a 2025-03-22T15:44:50 [directwrite] Deprecate hb_directwrite_font_get_dw_font()
Khaled Hosny 59aee7f3 2025-03-19T02:37:18 [directwrite] Fix copying variations in hb_directwrite_font_create() I missed the endianness mismatch between HarfBuzz and DirectWrite tags.
Behdad Esfahbod 08781f6f 2025-03-15T20:04:37 [dwrite] Set face index / glyph_count on hb-face
Behdad Esfahbod e1d395f4 2025-03-15T14:13:02 [dwrite] Minor cleanup
Behdad Esfahbod db8d099d 2025-03-15T13:53:36 [dwrite] Split shape code into its own file
Behdad Esfahbod 13849d42 2025-03-15T13:25:49 [dwrite] More cleanup
Behdad Esfahbod e9d5ecca 2025-03-15T13:15:03 [directwrite] Simplify more
Behdad Esfahbod d2b72280 2025-03-15T12:55:27 [directwrite] Rely on more reference-counting for lifetime
Behdad Esfahbod 41d722c3 2025-03-15T12:52:24 [directwrite] Remove unused member
Behdad Esfahbod b3a29381 2025-03-14T17:26:33 [directwrite] Minor cleanup
Behdad Esfahbod bda5b832 2025-03-14T03:38:43 [directwrite] Mutex for font registration
Behdad Esfahbod 09d98325 2025-03-14T03:13:32 [directwrite] Rename a function
Behdad Esfahbod e92cd9f7 2025-03-14T02:32:35 [directwrite] Massage more I think this is it!
Behdad Esfahbod 1e9d101e 2025-03-14T02:13:32 [directwrite] Add hb_directwrite_face_create_from_file_or_fail() Just loads the blob from file and creates a face from it. New API: +hb_directwrite_face_create_from_file_or_fail()
Behdad Esfahbod c73b54bc 2025-03-14T02:05:45 [directwrite] Massage more
Behdad Esfahbod db93dbb2 2025-03-14T01:50:08 [directwrite] More cleanup
Behdad Esfahbod 9e5a7678 2025-03-14T01:22:05 [directwrite] Add singleton dwrite_dll
Behdad Esfahbod 64716226 2025-03-14T01:09:52 [directwrite] Shuffle code around
Behdad Esfahbod 27fc376f 2025-03-13T18:17:41 [directwrite] Addd lifecycle management to a few of objects
Behdad Esfahbod aacaa8bb 2025-03-13T17:14:47 [directwrite] Flip loader & stream around
Behdad Esfahbod 2502d0b6 2025-03-13T17:00:10 [directwrite] Use blob directly in the interface
Behdad Esfahbod d0fef9a1 2025-03-13T16:56:47 [directwrite] Don't release the library It crashes. Going to fix it to use a singleton, but for now just not crash.
Behdad Esfahbod ad3225c6 2025-03-13T16:30:09 [direcwrite] Make blob immutable
Behdad Esfahbod 00360049 2025-03-13T16:22:45 [directwrite] Handle failures in new API Still crashes...
Behdad Esfahbod b0a5920d 2025-03-13T14:27:37 [directwrite] Add hb_directwrite_face_create_from_blob_or_fail() Part of https://github.com/harfbuzz/harfbuzz/issues/5082 New API: +hb_directwrite_face_create_from_blob_or_fail()
Behdad Esfahbod 8ca892b0 2025-03-11T00:19:34 [directwrite] Simplify headers
Khaled Hosny b8b56c4a 2025-03-07T14:30:23 [directwrite] Add comment [ci skip]
Khaled Hosny 9abaf193 2025-03-07T02:53:43 [directwrite] Fix applying features to directwrite shaper The range_features was ending up with random data because hb_ms_make_feature_ranges() keeps pointers to data allocated in feature_records and range_records, but that data was getting freed before range_features was used. Change the variable scope to avoid freeing the data too early. Fixes https://github.com/harfbuzz/harfbuzz/issues/5113
Khaled Hosny 3ef87098 2025-03-01T00:58:14 10.4.0
Khaled Hosny 484e8d49 2025-02-28T00:14:25 [directwrite] Add hb_directwrite_face_get_dw_font_face() A new name for hb_directwrite_face_get_font_face(), which is now deprecated. Part of https://github.com/harfbuzz/harfbuzz/issues/5084
Khaled Hosny e41dc20c 2025-02-21T10:20:11 [directwrite] Fix -Wcast-align warning https://github.com/harfbuzz/harfbuzz/pull/5079#issuecomment-2673805310
Khaled Hosny 694ffa87 2025-02-20T23:56:59 10.3.0
Khaled Hosny 03cf1565 2025-02-20T21:56:56 [directwrite] Rename font_get_font to font_get_dw_font https://github.com/harfbuzz/harfbuzz/pull/5079#pullrequestreview-2627407692
Khaled Hosny a8fd2971 2025-02-13T17:16:20 [directwrite] Add hb_directwrite_font_create()/font_get_font() Uses hb_directwrite_face_create() under the hood, but copies variations from directwrite to hb-font.
Magnus Larsen b8178f25 2024-02-12T21:48:28 Disable Wcast-function-type on clang-cl, too
Behdad Esfahbod 326db329 2022-12-27T14:38:17 [directwrite] Simplify delete Fixes https://github.com/harfbuzz/harfbuzz/issues/3981
Luca Bacci c22acfa8 2022-07-06T13:50:47 Fix function pointer typedef
Luca Bacci 3e881efb 2022-06-27T14:34:18 Revert "Revert "Revert "[hb-directwrite] Don't load dwrit.dll dynamically""" This reverts commit 361a438658dcddea29d7c8b9c68bf2bc88109bde.
Behdad Esfahbod eaba5e74 2022-06-28T13:47:49 [directwrite] Simplify
Behdad Esfahbod 20031ddb 2022-01-22T11:41:30 [unsafe-to-concat] Mark in all other shapers unsafe_to_break() implies unsafe-to-concat; but setting the flag manually wasn't.
Behdad Esfahbod 94d43c00 2021-12-04T16:56:39 [buffer] Merge and rename clear_glyph_flags()
Khaled Hosny 7608b191 2021-12-01T18:57:21 [directwrite] Set unsafe to break flag Like the rest of platform shapers. Otherwise hb-shape --verify goes crazy.
Khaled Hosny 361a4386 2021-12-01T03:16:46 Revert "Revert "[hb-directwrite] Don't load dwrit.dll dynamically"" This reverts commit ecbe224743c205c99aa459b27e7fb241cc4b1dc5. It was causing directwrite shaper to crash in MSVC builds.
Cameron Cawley ecbe2247 2021-09-24T21:32:12 Revert "[hb-directwrite] Don't load dwrit.dll dynamically" This reverts commit 6119ff9d806db7de3ceef73de67fe589507800bb.
Khaled Hosny 990c15db 2021-07-27T20:43:53 [hb-ms-features] Rename types to be less general
Khaled Hosny 69199211 2021-07-27T19:51:23 [uniscribe/directwrite] Move feature setup to shared file Fixes https://github.com/harfbuzz/harfbuzz/issues/3070
Behdad Esfahbod 2337f0d0 2021-07-08T10:58:50 Internally use hb_malloc/.../hb_free instead of malloc/.../free Redefining those stock names as macros was conflicting with gcc 10 headers. Fixes https://github.com/harfbuzz/harfbuzz/issues/3044
Khaled Hosny 14f220b7 2021-06-20T18:59:13 [directwrite] Support feature ranges Code copied from hb-uniscribe.cc and adapted to use DirectWrite types. May be there is a better way to de-duplicate the code, though I'm not exactly sure how or if it is worth it.
Khaled Hosny 6119ff9d 2021-06-03T13:02:53 [hb-directwrite] Don't load dwrit.dll dynamically We already link to it, so I don't see the point of trying to load it dynamically.
Khaled Hosny b2070a50 2021-06-03T10:50:46 [hb-directwrite] Don’t override new/delete This is a testing shaper, we don’t care for overridden malloc/free here. Use malloc/free in the code called from hb_directwrite_face_create().
Khaled Hosny 221d642b 2021-06-03T10:45:23 [hb-directwrite] Remove _hb_directwrite_shape_experimental_width Not used anywhere.
Khaled Hosny e116058b 2021-04-15T13:52:19 [directwrite] Use correct UTF-16 string length Fixes https://github.com/harfbuzz/harfbuzz/issues/2474
Khaled Hosny 3d7a3616 2020-12-30T23:58:37 [docs] Miscellaneous missing docs
Khaled Hosny 08269408 2020-12-23T00:45:39 [docs] Add messing sections Docs for these sections were not generated at all.
Ebrahim Byagowi 2be859d2 2020-04-20T23:48:23 minor, replace nullptr checks with implicit ones
Iceflower c4567968 2019-09-26T11:35:27 [dwrite] Fix extra semicolon issue
Ebrahim Byagowi 2a3d4987 2019-08-21T03:02:01 Remove hb_directwrite_shape_experimental_width public API I had specially exposed the API as I didn't know how to embed harfbuzz easily elsewhere but now with harfbuzz.cc it has become very easy and I don't like to see its use anywhere as it has a bad naming and its Kashida adding is bogus and only useful to check where it should be added, not visually useful however.
Ebrahim Byagowi eb8bd2f7 2019-07-16T22:27:01 Add hb_gdi_face_create API Based on Konstantin Ritt work posted on mailing list
Ebrahim Byagowi 9fea6b4d 2019-07-05T18:46:41 [amalgam] Use it in cmake port and fix conflicts (#1812)
Ebrahim Byagowi 4ab2d1d6 2019-07-01T19:30:21 [dwrite] Apply minor style improves
Carlo Bramini 5ebd265e 2019-07-01T16:06:43 Fix error rised by GCC8+
Carlo Bramini 693dacbb 2019-07-01T13:31:26 Use lower case file name with #include I tried to cross compile harfbuzz for Windows and an error was generated because `DWrite_1.h` was not found. This happened because the filesystem is case sensitive and for this reason that include file was not found. The right name of the file to be used is `dwrite_1.h`, with all letters not capitalized: https://docs.microsoft.com/en-us/windows/desktop/api/dwrite_1/ I also verified in the installation of VS2017 with Windows Kit v10 and in that place it was also lower case. So, in my opinion it should be better to change this.
Carlo Bramini 601b6825 2019-06-30T15:03:44 Dynamically load DWRITE Also checks if DWriteCreateFactory() has been executed successfully.
Behdad Esfahbod 10bac21b 2019-06-18T15:15:06 [coretext/uniscribe/directwrite] Remove extra semicolons Fixes https://github.com/harfbuzz/harfbuzz/pull/1783
Behdad Esfahbod aa3450ca 2019-06-17T22:41:49 [config] Don't compile disabled features This makes it possible to include all .cc files into build, even if not building CoreText, Uniscribe, etc. This was mostly to help custom builders. But also means that we can include all files in our own build system. Not sure if we should. Definitely simplifies things, but slightly only.
Ebrahim Byagowi c91f3fa3 2019-06-01T10:55:37 [dwrite] Replace REPLACEME with release version the symbol had
Behdad Esfahbod 68e12e68 2019-05-13T17:28:59 Fix more semi-colon issues
Behdad Esfahbod 41248cce 2019-05-07T20:54:31 Remove MIN/MAX in favor of hb_min/hb_max
Ebrahim Byagowi f27fdca4 2019-04-30T13:01:04 [doc] Add documentation to hb_color_get_* and hb_directwrite_face_* (#1690)
Michiharu Ariza d75b73a3 2019-03-30T00:06:54 fix rebase errors
Michiharu Ariza cc94a9ed 2019-03-29T18:41:38 Merge branch 'var-subset' of https://github.com/harfbuzz/harfbuzz into var-subset rebase master
Ebrahim Byagowi c2e9d750 2019-02-22T13:13:42 [dwrite] hb_directwrite_face_create, a new API It makes a hb_face_t from IDWriteFontFace, useful when using DirectWrite facilities for font selection, loading and rendering but using harfbuzz for shaping.
Ebrahim Byagowi b292772e 2019-03-29T13:00:56 [dwrite] A new API, hb_directwrite_face_get_font_face (#1600) Can be useful when using HarfBuzz for font loading and shaping but using DirectWrite for rendering.
Behdad Esfahbod 59f36f36 2019-03-29T10:55:12 Replace REPLACEME's left out of 2.4.0 https://github.com/harfbuzz/harfbuzz/issues/1641
Ebrahim Byagowi 45149eb3 2019-02-22T13:13:42 [dwrite] hb_directwrite_face_create, a new API It makes a hb_face_t from IDWriteFontFace, useful when using DirectWrite facilities for font selection, loading and rendering but using harfbuzz for shaping.
Ebrahim Byagowi 0c2bd1b1 2019-01-19T16:30:07 [dwrite] Fix delete-non-virtual-dtor warning (#1550)
Behdad Esfahbod c2ea7a9d 2019-01-18T13:45:33 [directwrite] More fix
Ebrahim Byagowi 9714d3ec 2019-01-18T21:55:21 [dwrite] Try to fix delete-non-virtual-dtor warnings Fixes #1548 hopefully
Behdad Esfahbod e6527228 2019-01-18T12:22:07 [directwrite] Fix error hb-directwrite.cc: In constructor 'TextAnalysis::TextAnalysis(const wchar_t*, uint32_t, const wchar_t*, DWRITE_READING_DIRECTION)': hb-directwrite.cc:489:18: error: 'TextAnalysis::mText' will be initialized after [-Werror=reorder] const wchar_t* mText; ^~~~~ hb-directwrite.cc:488:12: error: 'uint32_t TextAnalysis::mTextLength' [-Werror=reorder] uint32_t mTextLength; ^~~~~~~~~~~ hb-directwrite.cc:282:3: error: when initialized here [-Werror=reorder] TextAnalysis (const wchar_t* text, uint32_t textLength, ^~~~~~~~~~~~ hb-directwrite.cc: In function 'hb_bool_t _hb_directwrite_shape_full(hb_shape_plan_t*, hb_font_t*, hb_buffer_t*, const hb_feature_t*, unsigned int, float)':
Behdad Esfahbod 5b13e458 2019-01-17T19:52:32 Fix build
Ebrahim Byagowi e4120085 2018-12-17T21:31:01 Remove redundant void from C++ sources (#1486)
Ebrahim Byagowi b2ebaa9a 2018-12-16T22:38:10 Remove redundant 'inline' from methods (#1483)
Ebrahim Byagowi 7ee5c523 2018-12-12T15:14:37 minor style fix, use void in methods on no argument
Behdad Esfahbod 729aedf0 2018-11-16T03:26:46 [directwrite] Fix build
Behdad Esfahbod ce5da0f3 2018-11-16T02:29:13 [shaper] Rewrite shaper data code to be more template-driven than macro-driven
Behdad Esfahbod f521a28b 2018-11-11T21:32:01 Embed hb_ot_shape_plan_t into hb_shape_plan_t No other shaper will need shape_plan_data, by definition. So, remove abstraction layer and always create hb_ot_shape_plan_t as part of hb_shape_plan_t.
Behdad Esfahbod 1beacdde 2018-11-11T16:35:28 Minor
Behdad Esfahbod c77ae408 2018-08-25T22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.
Behdad Esfahbod 3d22aefe 2018-08-01T18:03:32 Rename
Behdad Esfahbod be458eb0 2018-07-10T14:41:04 Include more basic internal headers from hb-private.hh
Ebrahim Byagowi a57f5a1a 2018-04-28T13:58:55 [dwrite] Minor, enable the original code assertions
Ebrahim Byagowi cb3fa70c 2018-04-11T18:00:13 [dwrite] Cosmetic change (#963)
Ebrahim Byagowi fe18c471 2018-03-25T18:19:23 [dwrite] minor
Ebrahim Byagowi 7919033c 2018-03-22T16:04:38 [dwrite] Replace rest of 'malloc/free's with 'new/delete' (#897)
Ebrahim Byagowi 957e7756 2018-03-19T12:19:42 [dwrite] Use new again and enable the build on msys2 bots (#890)