diff options
author | Cecilio Pardo <cpardo@imayhem.com> | 2024-10-09 11:40:28 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2024-10-25 14:34:45 +0300 |
commit | edf37e811cafa4092b13969613fa83f6e6d69ab3 (patch) | |
tree | 4e59b794758f5adc18dd1afaa4b9c8b9963a7f41 /lisp/emacs-lisp/regexp-opt.el | |
parent | 517711c373b9c80811371014fc5a7786aa7548eb (diff) | |
download | emacs-edf37e811cafa4092b13969613fa83f6e6d69ab3.tar.gz emacs-edf37e811cafa4092b13969613fa83f6e6d69ab3.tar.bz2 emacs-edf37e811cafa4092b13969613fa83f6e6d69ab3.zip |
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
Diffstat (limited to 'lisp/emacs-lisp/regexp-opt.el')
0 files changed, 0 insertions, 0 deletions