Commit graph

8 commits

Author SHA1 Message Date
Stefan Kangas
7cb77385d3 ; Fix typos 2024-11-21 10:06:19 +01:00
Eli Zaretskii
b54fa15ffb Fix Cygw32 build
* src/pdumper.c (dump_mm_heap_cb_release): Avoid NULL pointer
dereference.
* src/w32dwrite.c (INITGUID) [CYGWIN]: Don't define for Cygwin.
* src/w32menu.c (w32_popup_dialog): Fix Cygw32 build.  (Bug#74312)
2024-11-12 14:41:01 +02:00
Eli Zaretskii
aaefb67f54 ; * src/w32dwrite.c (syms_of_w32dwrite): Init 'w32-inhibit-dwrite'. 2024-10-27 08:43:00 +02:00
Cecilio Pardo
702d5ec566 ; Fix problem with DirectWrite (MS-Windows)
Negative lbearings were not handled.

* src/w32dwrite.c (w32_dwrite_draw): Modified to handle negative
lbearing.
2024-10-27 08:25:06 +02:00
Po Lu
574e97575f ; Fix coding style of Uniscribe files
* src/w32dwrite.c (EMACS_DWRITE_UNUSED, IDWriteFontFaceVtbl)
(IDWriteFontFace, IDWriteRenderingParamsVtbl)
(IDWriteRenderingParams, IDWriteFontVtbl, IDWriteFont)
(IDWriteBitmapRenderTargetVtbl, IDWriteBitmapRenderTarget)
(IDWriteBitmapRenderTarget1, IDWriteGdiInteropVtbl)
(IDWriteGdiInterop, IDWriteFactoryVtbl, IDWriteFactory)
(IDWriteColorGlyphRunEnumeratorVtbl)
(IDWriteColorGlyphRunEnumerator, IDWriteFactory2Vtbl)
(IDWriteFactory2, get_font_face, text_extents_internal)
(w32_initialize_direct_write, w32_dwrite_draw)
(w32_use_direct_write):

* src/w32font.c (w32font_text_extents, w32font_draw):

* src/w32uniscribe.c (uniscribe_open): Correct coding style.
2024-10-26 08:39:24 +08:00
Eli Zaretskii
3d508157e0 ; * src/w32dwrite.c (Fw32_dwrite_reinit): Doc fix. 2024-10-25 14:47:43 +03:00
Eli Zaretskii
222a5207c4 ; Minor fixes to last changes
* src/w32font.h:
* src/w32font.c:
* src/w32dwrite.c:
* etc/NEWS: Minor fixes of last changes.  (Bug#73730)
2024-10-25 14:36:41 +03:00
Cecilio Pardo
edf37e811c Implement drawing text with DirectWrite on MS-Windows.
This adds support for color fonts.
* configure.ac: Add src/w32drite to W32_OBJ.
* src/w32dwrite.c: New file.
(w32-initialize-direct-write): New function, initialize the
DirectWrite library if it is available, and required global
variables.
(w32_use_direct_write): New function, check if DirectWrite
is available and activated by the user.
(w32_dwrite_encode_char): New function, replacement for HarfBuzz's
'encode_char'.
(w32_dwrite_text_extents): New function, replacement for w32font
text_extents.
(w32_dwrite_draw): New function, replacement for w32font draw.
(w32_dwrite_free_cached_face): New function, used in the font
deletion process to also delete DirectWrite data.
(verify_hr): New function, verify COM method results.
(release_com): New function, release a COM object.
(w32-dwrite-available): New function, returns true if DirectWrite
is available.
(w32-dwrite-reinit): New function, reinitialize DirectWrite,
optionally setting some rendering parameters.
* src/w32font.c (w32font_text_extents): If DirectWrite is enabled,
call 'w32_dwrite_text_extents'.
(w32font_draw): If DirectWrite is enabled, call 'w32_dwrite_draw'.
* src/w32uniscribe.c: (w32hb_encode_char): If DirectWrite is enabled,
call 'w32_dwrite_encode_char'.
(syms_of_w32uniscribe_for_pdumper): Initialize DirectWrite.
(uniscribe_close): Free DirectWrite data for the font.

Bug#73730
2024-10-25 14:34:45 +03:00