ReactOS 0.4.17-dev-923-g4c9a150
dwrite_private.h
Go to the documentation of this file.
1/*
2 * Copyright 2012 Nikolay Sivov for CodeWeavers
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifndef __WINE_DWRITE_PRIVATE_H
20#define __WINE_DWRITE_PRIVATE_H
21
22#include "dwrite_3.h"
23#include "d2d1.h"
24#include "winternl.h"
25
26#include "wine/debug.h"
27#include "wine/list.h"
28#include "wine/rbtree.h"
29
30#define MS_GSUB_TAG DWRITE_MAKE_OPENTYPE_TAG('G','S','U','B')
31#define MS_GPOS_TAG DWRITE_MAKE_OPENTYPE_TAG('G','P','O','S')
32
33typedef struct MATRIX_2X2
34{
35 float m11;
36 float m12;
37 float m21;
38 float m22;
40
41static const DWRITE_MATRIX identity =
42{
43 1.0f, 0.0f,
44 0.0f, 1.0f,
45 0.0f, 0.0f
46};
47
49{
50 1.0f, 0.0f,
51 0.0f, 1.0f,
52};
53
54static inline LPWSTR heap_strdupnW(const WCHAR *str, UINT32 len)
55{
56 WCHAR *ret = NULL;
57
58 if (len)
59 {
60 ret = malloc((len+1)*sizeof(WCHAR));
61 if(ret)
62 {
63 memcpy(ret, str, len*sizeof(WCHAR));
64 ret[len] = 0;
65 }
66 }
67
68 return ret;
69}
70
71static inline const char *debugstr_range(const DWRITE_TEXT_RANGE *range)
72{
73 return wine_dbg_sprintf("%u:%u", range->startPosition, range->length);
74}
75
76static inline const char *debugstr_matrix(const DWRITE_MATRIX *m)
77{
78 if (!m) return "(null)";
79 return wine_dbg_sprintf("{%.2f,%.2f,%.2f,%.2f,%.2f,%.2f}", m->m11, m->m12, m->m21, m->m22,
80 m->dx, m->dy);
81}
82
83static inline BOOL dwrite_array_reserve(void **elements, size_t *capacity, size_t count, size_t size)
84{
85 size_t new_capacity, max_capacity;
86 void *new_elements;
87
88 if (count <= *capacity)
89 return TRUE;
90
91 max_capacity = ~(SIZE_T)0 / size;
92 if (count > max_capacity)
93 return FALSE;
94
95 new_capacity = max(4, *capacity);
96 while (new_capacity < count && new_capacity <= max_capacity / 2)
97 new_capacity *= 2;
98 if (new_capacity < count)
99 new_capacity = max_capacity;
100
101 new_elements = realloc(*elements, new_capacity * size);
102 if (!new_elements)
103 return FALSE;
104
105 *elements = new_elements;
106 *capacity = new_capacity;
107
108 return TRUE;
109}
110
111const char *debugstr_sa_script(UINT16);
112
113static inline unsigned short get_table_entry_16(const unsigned short *table, WCHAR ch)
114{
115 return table[table[table[ch >> 8] + ((ch >> 4) & 0x0f)] + (ch & 0xf)];
116}
117
118static inline unsigned short get_table_entry_32(const unsigned short *table, UINT ch)
119{
120 return table[table[table[table[ch >> 12] + ((ch >> 8) & 0x0f)] + ((ch >> 4) & 0x0f)] + (ch & 0xf)];
121}
122
124{
127}
128
130{
131 DWRITE_MATRIX tmp = *a;
132
133 a->m11 = tmp.m11 * b->m11 + tmp.m12 * b->m21;
134 a->m12 = tmp.m11 * b->m12 + tmp.m12 * b->m22;
135 a->m21 = tmp.m21 * b->m11 + tmp.m22 * b->m21;
136 a->m22 = tmp.m21 * b->m12 + tmp.m22 * b->m22;
137 a->dx = tmp.dx * b->m11 + tmp.dy * b->m21 + b->dx;
138 a->dy = tmp.dy * b->m12 + tmp.dy * b->m22 + b->dx;
139}
140
142{
144 const WCHAR *string;
150 /* fields below are only meaningful for gdi-compatible layout */
154};
155
157{
165};
166
168{
175 struct dwrite_font_data *font_data; /* could be NULL when face is created directly with IDWriteFactory::CreateFontFace() */
176};
177
179{
180 const BYTE *data;
181 void *context;
184};
185
187{
188 struct list entry;
190};
191
192#define GLYPH_BLOCK_SHIFT 8
193#define GLYPH_BLOCK_SIZE (1UL << GLYPH_BLOCK_SHIFT)
194#define GLYPH_BLOCK_MASK (GLYPH_BLOCK_SIZE - 1)
195#define GLYPH_MAX 65536
196
198{
199 FONT_IS_SYMBOL = 0x00000001,
200 FONT_IS_MONOSPACED = 0x00000002,
201 FONT_IS_COLORED = 0x00000004, /* CPAL/COLR support */
206};
207
208struct dwrite_cmap;
209
210typedef UINT16 (*p_cmap_get_glyph_func)(const struct dwrite_cmap *cmap, unsigned int ch);
211typedef unsigned int (*p_cmap_get_ranges_func)(const struct dwrite_cmap *cmap, unsigned int max_count,
212 DWRITE_UNICODE_RANGE *ranges);
213
215{
216 const void *data;
217 union
218 {
219 struct
220 {
221 unsigned int seg_count;
222 unsigned int glyph_id_array_len;
223
224 const UINT16 *ends;
230 struct
231 {
232 unsigned int first;
233 unsigned int last;
235 struct
236 {
237 unsigned int group_count;
239 } u;
242 unsigned short symbol : 1;
245};
246
247extern void dwrite_cmap_init(struct dwrite_cmap *cmap, IDWriteFontFile *file, unsigned int face_index,
248 DWRITE_FONT_FACE_TYPE face_type);
249extern void dwrite_cmap_release(struct dwrite_cmap *cmap);
250extern UINT16 opentype_cmap_get_glyph(const struct dwrite_cmap *cmap, unsigned int ch);
251extern HRESULT opentype_cmap_get_unicode_ranges(const struct dwrite_cmap *cmap, unsigned int max_count,
252 DWRITE_UNICODE_RANGE *ranges, unsigned int *count);
253
254struct dwrite_fontface;
256
258{
262
266
272 struct
273 {
275 struct list mru;
276 size_t max_size;
277 size_t size;
280
285 struct
286 {
287 unsigned int ascent;
288 unsigned int descent;
290 unsigned int flags;
291
293
300
307
311
313
315};
316
320 void **out);
336extern HRESULT create_font_file(IDWriteFontFileLoader *loader, const void *reference_key, UINT32 key_size, IDWriteFontFile **font_file);
337extern void init_local_fontfile_loader(void);
339extern HRESULT create_fontface(const struct fontface_desc *desc, struct list *cached_list,
340 IDWriteFontFace5 **fontface);
345extern HRESULT get_local_refkey(const WCHAR*,const FILETIME*,void**,UINT32*);
355extern void release_system_fallback_data(void);
360 DWRITE_FONT_SIMULATIONS simulations, DWRITE_FONT_AXIS_VALUE const *axis_values, UINT32 axis_values_count,
363 DWRITE_FONT_SIMULATIONS simulations, struct list **cache, REFIID riid, void **obj);
366extern struct fontfacecached *factory_cache_fontface(IDWriteFactory7 *factory, struct list *fontfaces,
381 D2D1_POINT_2F baseline_origin, DWRITE_MATRIX const *transform, D2D1_POINT_2F *origins);
383 DWRITE_FONT_FAMILY_MODEL family_model, REFGUID riid, void **ret);
385
386struct dwrite_fontface;
387
388extern float fontface_get_scaled_design_advance(struct dwrite_fontface *fontface, DWRITE_MEASURING_MODE measuring_mode,
389 float emsize, float ppdip, const DWRITE_MATRIX *transform, UINT16 glyph, BOOL is_sideways);
391
393{
395 unsigned int family_len;
397 unsigned int locale_len;
398
402
413
414 float fontsize;
415 float tabstop;
416
419
422
424 unsigned int axis_values_count;
425};
426
428{
432};
433
436
438 DWRITE_VERTICAL_GLYPH_ORIENTATION orientation, BOOL *changed);
442 DWRITE_FONT_AXIS_VALUE const *axis_values, unsigned int num_values);
444 DWRITE_FONT_AXIS_VALUE *axis_values, unsigned int num_values);
448 IDWriteInlineObject *trimming_sign, BOOL *changed);
454 BOOL *changed);
458 BOOL *changed);
460 DWRITE_LINE_SPACING const *spacing, BOOL *changed);
461
462/* Opentype font table functions */
464{
473};
474
479};
480
481extern const void* get_fontface_table(IDWriteFontFace5 *fontface, UINT32 tag,
482 struct dwrite_fonttable *table);
483
485{
486 unsigned int *tags;
487 size_t capacity;
488 size_t count;
489};
490
492{
494 unsigned int script_list;
495 unsigned int feature_list;
496 unsigned int lookup_list;
497};
498
500{
505 unsigned int attributes;
506};
507
509extern HRESULT opentype_try_get_font_table(const struct file_stream_desc *stream_desc, UINT32 tag, const void **data,
510 void **context, UINT32 *size, BOOL *exists);
511extern void opentype_get_font_properties(const struct file_stream_desc *stream_desc,
512 struct dwrite_font_props *props);
514extern void opentype_get_font_typo_metrics(struct file_stream_desc *stream_desc, unsigned int *ascent,
515 unsigned int *descent);
516extern HRESULT opentype_get_font_info_strings(const struct file_stream_desc *stream_desc,
521extern void opentype_get_typographic_features(struct ot_gsubgpos_table *table, unsigned int script_index,
522 unsigned int language_index, struct tag_array *tags);
523extern BOOL opentype_get_vdmx_size(const struct dwrite_fonttable *table, INT ppem, UINT16 *ascent,
524 UINT16 *descent);
525extern unsigned int opentype_get_cpal_palettecount(const struct dwrite_fonttable *table);
526extern unsigned int opentype_get_cpal_paletteentrycount(const struct dwrite_fonttable *table);
527extern HRESULT opentype_get_cpal_entries(const struct dwrite_fonttable *table, unsigned int palette,
528 unsigned int first_entry_index, unsigned int entry_count, DWRITE_COLOR_F *entries);
531extern HRESULT opentype_get_kerning_pairs(struct dwrite_fontface *fontface, unsigned int count,
532 const UINT16 *glyphs, INT32 *values);
533extern BOOL opentype_has_kerning_pairs(struct dwrite_fontface *fontface);
534extern HRESULT opentype_get_font_var_axis(const struct file_stream_desc *stream_desc, struct dwrite_var_axis **axis,
535 unsigned int *axis_count);
536
538 USHORT layer; /* [0, num_layers) index indicating current layer */
539 /* base glyph record data, set once on initialization */
542 /* current layer record data, updated every time glyph is switched to next layer */
545};
546
548 struct dwrite_colorglyph *color_glyph);
549extern void opentype_colr_next_glyph(const struct dwrite_fonttable *table,
550 struct dwrite_colorglyph *color_glyph);
551
553 GASP_GRIDFIT = 0x0001,
554 GASP_DOGRAY = 0x0002,
557};
558
559extern unsigned int opentype_get_gasp_flags(const struct dwrite_fonttable *gasp, float emsize);
560
561/* BiDi helpers */
563{
564 unsigned int ch;
565 UINT8 explicit;
569};
570
571extern HRESULT bidi_computelevels(struct bidi_char *chars, unsigned int count, UINT8 baselevel);
572
574{
576 float emsize;
582};
583
585{
590};
591
593{
594 struct
595 {
596 unsigned char *values;
597 size_t count;
598 size_t size;
600
601 struct
602 {
604 size_t count;
605 size_t size;
607};
608
609/* Glyph shaping */
611{
629
631{
632 const struct shaping_font_ops *font;
633 void *context;
635
638
639 struct
640 {
642 unsigned int classdef;
643 unsigned int markattachclassdef;
644 unsigned int markglyphsetdef;
646};
647
649{
650 /* Combined features mask. */
651 unsigned int mask;
652 /* Derived from glyph class, supplied by GDEF. */
653 unsigned int props;
654 /* Used for GPOS mark and cursive attachments. */
656 /* Only relevant for isClusterStart glyphs. Indicates text position for this cluster. */
657 unsigned int start_text_idx;
658 unsigned int codepoint;
659};
660
662{
670};
671
673
674typedef void (*p_apply_context_lookup)(struct scriptshaping_context *context, unsigned int lookup_index);
675
677{
685};
686
688{
689 unsigned int tag;
690 unsigned int index;
691 unsigned int flags;
692 unsigned int max_value;
693 unsigned int default_value;
694 unsigned int mask;
695 unsigned int shift;
696 unsigned int stage;
697};
698
699#define MAX_SHAPING_STAGE 16
700
701struct shaping_features;
702
704 const struct shaping_features *features);
705
707{
709 unsigned int last_lookup;
710};
711
713{
715 size_t count;
716 size_t capacity;
717 unsigned int stage;
719};
720
721struct shaper
722{
724 void (*setup_masks)(struct scriptshaping_context *context, const struct shaping_features *features);
725};
726
727extern const struct shaper arabic_shaper;
728
729extern void shape_enable_feature(struct shaping_features *features, unsigned int tag,
730 unsigned int flags);
731extern void shape_add_feature_full(struct shaping_features *features, unsigned int tag,
732 unsigned int flags, unsigned int value);
733extern unsigned int shape_get_feature_1_mask(const struct shaping_features *features,
734 unsigned int tag);
735extern void shape_start_next_stage(struct shaping_features *features, stage_func func);
736
738{
740 const struct shaper *shaper;
741 unsigned int script;
743
744 const WCHAR *text;
745 unsigned int length;
748
749 union
750 {
751 struct
752 {
759 struct
760 {
766 unsigned int max_glyph_count;
767 unsigned int capacity;
768 const WCHAR *digits;
770 struct
771 {
772 UINT16 *glyphs;
778 } u;
779
780 const struct ot_gsubgpos_table *table; /* Either GSUB or GPOS. */
781 struct
782 {
784 const unsigned int *range_lengths;
785 unsigned int range_count;
787 unsigned int global_mask;
788 unsigned int lookup_mask; /* Currently processed feature mask, set in main loop. */
789 unsigned int auto_zwj;
790 unsigned int auto_zwnj;
792 unsigned int has_gpos_attachment : 1;
793
794 unsigned int cur;
795 unsigned int glyph_count;
796 unsigned int nesting_level_left;
797
798 float emsize;
800 float *advances;
802};
803
805{
806 void (*grab_font_table)(void *context, UINT32 table, const BYTE **data, UINT32 *size, void **data_context);
807 void (*release_font_table)(void *context, void *data_context);
809 BOOL (*has_glyph)(void *context, unsigned int codepoint);
810 UINT16 (*get_glyph)(void *context, unsigned int codepoint);
811};
812
814 const struct shaping_font_ops *font_ops);
816extern struct scriptshaping_cache *fontface_get_shaping_cache(struct dwrite_fontface *fontface);
817
819extern unsigned int opentype_layout_find_script(const struct scriptshaping_cache *cache, unsigned int kind,
820 DWORD tag, unsigned int *script_index);
821extern unsigned int opentype_layout_find_language(const struct scriptshaping_cache *cache, unsigned int kind,
822 DWORD tag, unsigned int script_index, unsigned int *language_index);
823extern void opentype_layout_apply_gsub_features(struct scriptshaping_context *context, unsigned int script_index,
824 unsigned int language_index, struct shaping_features *features);
825extern void opentype_layout_apply_gpos_features(struct scriptshaping_context *context, unsigned int script_index,
826 unsigned int language_index, struct shaping_features *features);
827extern BOOL opentype_layout_check_feature(struct scriptshaping_context *context, unsigned int script_index,
828 unsigned int language_index, struct shaping_feature *feature, unsigned int glyph_count,
829 const UINT16 *glyphs, UINT8 *feature_applies);
831 unsigned int end);
833extern HRESULT opentype_get_vertical_glyph_variants(struct dwrite_fontface *fontface, unsigned int glyph_count,
834 const UINT16 *nominal_glyphs, UINT16 *glyphs);
835
836extern HRESULT shape_get_glyphs(struct scriptshaping_context *context, const unsigned int *scripts);
837extern HRESULT shape_get_positions(struct scriptshaping_context *context, const unsigned int *scripts);
838extern HRESULT shape_get_typographic_features(struct scriptshaping_context *context, const unsigned int *scripts,
839 unsigned int max_tagcount, unsigned int *actual_tagcount, DWRITE_FONT_FEATURE_TAG *tags);
840extern HRESULT shape_check_typographic_feature(struct scriptshaping_context *context, const unsigned int *scripts,
841 unsigned int tag, unsigned int glyph_count, const UINT16 *glyphs, UINT8 *feature_applies);
842
843struct font_data_context;
845
847
848#endif /* __WINE_DWRITE_PRIVATE_H */
unsigned short UINT16
Definition: actypes.h:129
unsigned char UINT8
Definition: actypes.h:128
COMPILER_DEPENDENT_UINT64 UINT64
Definition: actypes.h:131
_Check_return_ _Ret_maybenull_ _In_ size_t alignment
Definition: align.cpp:48
Definition: list.h:39
Definition: _locale.h:75
Definition: _set.h:50
range
Definition: d3dx9_private.h:58
DWRITE_GLYPH_IMAGE_FORMATS
Definition: dcommon.idl:43
DWRITE_MEASURING_MODE
Definition: dcommon.idl:36
#define realloc
Definition: debug_ros.c:6
#define malloc
Definition: debug_ros.c:4
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
static const struct pixel_format_desc formats[]
Definition: util.c:31
const char * wine_dbg_sprintf(const char *format,...)
Definition: compat.c:296
unsigned char ch[4][2]
Definition: console.c:118
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
return ret
Definition: mutex.c:147
DWRITE_PARAGRAPH_ALIGNMENT
Definition: dwrite.idl:183
DWRITE_NUMBER_SUBSTITUTION_METHOD
Definition: dwrite.idl:335
DWRITE_FONT_FILE_TYPE
Definition: dwrite.idl:47
DWRITE_WORD_WRAPPING
Definition: dwrite.idl:190
DWRITE_INFORMATIONAL_STRING_ID
Definition: dwrite.idl:116
@ DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG
Definition: dwrite.idl:138
DWRITE_FONT_FACE_TYPE
Definition: dwrite.idl:60
DWRITE_FONT_WEIGHT
Definition: dwrite.idl:73
DWRITE_FLOW_DIRECTION
Definition: dwrite.idl:207
DWRITE_FONT_SIMULATIONS
Definition: dwrite.idl:145
@ DWRITE_FONT_SIMULATIONS_OBLIQUE
Definition: dwrite.idl:148
@ DWRITE_FONT_SIMULATIONS_NONE
Definition: dwrite.idl:146
@ DWRITE_FONT_SIMULATIONS_BOLD
Definition: dwrite.idl:147
DWRITE_FONT_STYLE
Definition: dwrite.idl:109
DWRITE_TEXT_ALIGNMENT
Definition: dwrite.idl:175
DWRITE_READING_DIRECTION
Definition: dwrite.idl:199
DWRITE_FONT_STRETCH
Definition: dwrite.idl:94
DWRITE_FONT_FEATURE_TAG
Definition: dwrite.idl:243
DWRITE_VERTICAL_GLYPH_ORIENTATION
Definition: dwrite_1.idl:426
DWRITE_GRID_FIT_MODE
Definition: dwrite_2.idl:28
DWRITE_OPTICAL_ALIGNMENT
Definition: dwrite_2.idl:22
DWRITE_FONT_FAMILY_MODEL
Definition: dwrite_3.idl:169
DWRITE_FONT_AXIS_TAG
Definition: dwrite_3.idl:125
DWRITE_AUTOMATIC_FONT_AXES
Definition: dwrite_3.idl:156
struct FONTSIGNATURE FONTSIGNATURE
Definition: dwrite_3.idl:31
DWRITE_RENDERING_MODE1
Definition: dwrite_3.idl:77
struct fontfacecached * factory_cache_fontface(IDWriteFactory7 *factory, struct list *fontfaces, IDWriteFontFace5 *fontface)
Definition: main.c:1002
dwrite_outline_tags
@ OUTLINE_BEZIER
@ OUTLINE_END_FIGURE
@ OUTLINE_BEGIN_FIGURE
@ OUTLINE_LINE
HRESULT opentype_get_cpal_entries(const struct dwrite_fonttable *table, unsigned int palette, unsigned int first_entry_index, unsigned int entry_count, DWRITE_COLOR_F *entries)
Definition: opentype.c:2937
HRESULT create_system_fontset(IDWriteFactory7 *factory, REFIID riid, void **obj)
Definition: main.c:1624
HRESULT format_set_textalignment(struct dwrite_textformat_data *format, DWRITE_TEXT_ALIGNMENT alignment, BOOL *changed)
Definition: format.c:58
HRESULT format_set_trimming(struct dwrite_textformat_data *format, DWRITE_TRIMMING const *trimming, IDWriteInlineObject *trimming_sign, BOOL *changed)
Definition: format.c:104
unsigned int get_localizedstrings_count(IDWriteLocalizedStrings *strings)
Definition: main.c:563
void shape_start_next_stage(struct shaping_features *features, stage_func func)
Definition: shape.c:144
shaping_feature_flags
@ FEATURE_NEEDS_FALLBACK
@ FEATURE_MANUAL_ZWNJ
@ FEATURE_GLOBAL_SEARCH
@ FEATURE_MANUAL_ZWJ
@ FEATURE_GLOBAL
@ FEATURE_MANUAL_JOINERS
@ FEATURE_HAS_FALLBACK
HRESULT create_gdiinterop(IDWriteFactory7 *factory, IDWriteGdiInterop1 **interop)
Definition: gdiinterop.c:1110
const struct shaper arabic_shaper
Definition: arabic.c:185
HRESULT get_fontsig_from_fontface(IDWriteFontFace *, FONTSIGNATURE *)
Definition: font.c:2573
#define GLYPH_BLOCK_SIZE
HRESULT format_get_font_axisvalues(struct dwrite_textformat_data *format, DWRITE_FONT_AXIS_VALUE *axis_values, unsigned int num_values)
Definition: format.c:159
HRESULT format_set_wordwrapping(struct dwrite_textformat_data *format, DWRITE_WORD_WRAPPING wrapping, BOOL *changed)
Definition: format.c:86
HRESULT create_font_collection(IDWriteFactory7 *factory, IDWriteFontFileEnumerator *enumerator, BOOL is_system, IDWriteFontCollection3 **collection)
Definition: font.c:4649
BOOL opentype_layout_check_feature(struct scriptshaping_context *context, unsigned int script_index, unsigned int language_index, struct shaping_feature *feature, unsigned int glyph_count, const UINT16 *glyphs, UINT8 *feature_applies)
Definition: opentype.c:6391
HRESULT format_set_font_axisvalues(struct dwrite_textformat_data *format, DWRITE_FONT_AXIS_VALUE const *axis_values, unsigned int num_values)
Definition: format.c:141
static const char * debugstr_range(const DWRITE_TEXT_RANGE *range)
unsigned int opentype_layout_find_language(const struct scriptshaping_cache *cache, unsigned int kind, DWORD tag, unsigned int script_index, unsigned int *language_index)
Definition: opentype.c:3309
BOOL is_system_collection(IDWriteFontCollection *)
Definition: font.c:3201
HRESULT get_local_refkey(const WCHAR *, const FILETIME *, void **, UINT32 *)
Definition: font.c:6005
HRESULT format_set_fontfallback(struct dwrite_textformat_data *format, IDWriteFontFallback *fallback)
Definition: format.c:184
void(* p_apply_context_lookup)(struct scriptshaping_context *context, unsigned int lookup_index)
float fontface_get_scaled_design_advance(struct dwrite_fontface *fontface, DWRITE_MEASURING_MODE measuring_mode, float emsize, float ppdip, const DWRITE_MATRIX *transform, UINT16 glyph, BOOL is_sideways)
Definition: font.c:6384
HRESULT create_typography(IDWriteTypography **)
Definition: layout.c:5461
struct dwrite_textformat * unsafe_impl_from_IDWriteTextFormat(IDWriteTextFormat *iface)
Definition: format.c:708
HRESULT opentype_get_font_var_axis(const struct file_stream_desc *stream_desc, struct dwrite_var_axis **axis, unsigned int *axis_count)
Definition: opentype.c:6693
HRESULT format_set_linespacing(struct dwrite_textformat_data *format, DWRITE_LINE_SPACING const *spacing, BOOL *changed)
Definition: format.c:128
HRESULT opentype_get_font_info_strings(const struct file_stream_desc *stream_desc, DWRITE_INFORMATIONAL_STRING_ID id, IDWriteLocalizedStrings **strings)
Definition: opentype.c:2608
unsigned int opentype_get_cpal_paletteentrycount(const struct dwrite_fonttable *table)
Definition: opentype.c:2932
HRESULT get_filestream_from_file(IDWriteFontFile *, IDWriteFontFileStream **)
Definition: font.c:3563
HRESULT format_set_paralignment(struct dwrite_textformat_data *format, DWRITE_PARAGRAPH_ALIGNMENT alignment, BOOL *changed)
Definition: format.c:68
void opentype_get_typographic_features(struct ot_gsubgpos_table *table, unsigned int script_index, unsigned int language_index, struct tag_array *tags)
Definition: opentype.c:2789
DWRITE_CONTAINER_TYPE opentype_analyze_container_type(void const *, UINT32)
Definition: opentype.c:3217
HRESULT create_glyphrunanalysis(const struct glyphrunanalysis_desc *, IDWriteGlyphRunAnalysis **)
Definition: font.c:6410
void opentype_layout_apply_gpos_features(struct scriptshaping_context *context, unsigned int script_index, unsigned int language_index, struct shaping_features *features)
Definition: opentype.c:4932
void opentype_layout_unsafe_to_break(struct scriptshaping_context *context, unsigned int start, unsigned int end)
Definition: opentype.c:5233
UINT16(* p_cmap_get_glyph_func)(const struct dwrite_cmap *cmap, unsigned int ch)
void factory_detach_fontcollection(IDWriteFactory7 *factory, IDWriteFontCollection3 *collection)
Definition: main.c:2092
HRESULT add_localizedstring(IDWriteLocalizedStrings *, const WCHAR *, const WCHAR *)
Definition: main.c:466
HRESULT create_numbersubstitution(DWRITE_NUMBER_SUBSTITUTION_METHOD, const WCHAR *locale, BOOL, IDWriteNumberSubstitution **)
Definition: analyzer.c:2305
BOOL opentype_get_vdmx_size(const struct dwrite_fonttable *table, INT ppem, UINT16 *ascent, UINT16 *descent)
Definition: opentype.c:2846
static LPWSTR heap_strdupnW(const WCHAR *str, UINT32 len)
void get_logfont_from_fontface(IDWriteFontFace *, LOGFONTW *)
Definition: font.c:2560
HRESULT format_get_fontfallback(const struct dwrite_textformat_data *format, IDWriteFontFallback **fallback)
Definition: format.c:176
void release_system_fallback_data(void)
Definition: analyzer.c:3024
gasp_flags
@ GASP_DOGRAY
@ GASP_SYMMETRIC_GRIDFIT
@ GASP_GRIDFIT
@ GASP_SYMMETRIC_SMOOTHING
HRESULT opentype_get_font_facename(struct file_stream_desc *, WCHAR *, IDWriteLocalizedStrings **)
Definition: opentype.c:2690
void set_en_localizedstring(IDWriteLocalizedStrings *, const WCHAR *)
Definition: main.c:533
BOOL localizedstrings_contains(IDWriteLocalizedStrings *strings, const WCHAR *str)
Definition: main.c:569
HRESULT get_eudc_fontcollection(IDWriteFactory7 *factory, IDWriteFontCollection3 **collection)
Definition: font.c:5223
void fontface_detach_from_cache(IDWriteFontFace5 *fontface)
Definition: font.c:764
void release_format_data(struct dwrite_textformat_data *data)
Definition: format.c:40
void sort_localizedstrings(IDWriteLocalizedStrings *)
Definition: main.c:556
HRESULT create_localizedstrings(IDWriteLocalizedStrings **)
Definition: main.c:449
static BOOL is_simulation_valid(DWRITE_FONT_SIMULATIONS simulations)
HRESULT get_system_fontcollection(IDWriteFactory7 *factory, DWRITE_FONT_FAMILY_MODEL family_model, IDWriteFontCollection **collection)
Definition: font.c:5109
HRESULT opentype_try_get_font_table(const struct file_stream_desc *stream_desc, UINT32 tag, const void **data, void **context, UINT32 *size, BOOL *exists)
Definition: opentype.c:1528
UINT64(* p_dwrite_fontface_get_font_object)(struct dwrite_fontface *fontface)
void opentype_colr_next_glyph(const struct dwrite_fonttable *table, struct dwrite_colorglyph *color_glyph)
Definition: opentype.c:3041
HRESULT create_textlayout(const struct textlayout_desc *, IDWriteTextLayout **)
Definition: layout.c:5346
void opentype_layout_apply_gsub_features(struct scriptshaping_context *context, unsigned int script_index, unsigned int language_index, struct shaping_features *features)
Definition: opentype.c:6116
void shape_enable_feature(struct shaping_features *features, unsigned int tag, unsigned int flags)
Definition: shape.c:138
HRESULT opentype_analyze_font(IDWriteFontFileStream *, BOOL *, DWRITE_FONT_FILE_TYPE *, DWRITE_FONT_FACE_TYPE *, UINT32 *)
Definition: opentype.c:1492
HRESULT create_fontface(const struct fontface_desc *desc, struct list *cached_list, IDWriteFontFace5 **fontface)
Definition: font.c:5473
void init_local_fontfile_loader(void)
Definition: font.c:5991
struct scriptshaping_cache * create_scriptshaping_cache(void *context, const struct shaping_font_ops *font_ops)
Definition: shape.c:43
BOOL opentype_has_vertical_variants(struct dwrite_fontface *fontface)
Definition: opentype.c:6436
HRESULT format_set_vertical_orientation(struct dwrite_textformat_data *format, DWRITE_VERTICAL_GLYPH_ORIENTATION orientation, BOOL *changed)
Definition: format.c:202
void factory_lock(IDWriteFactory7 *factory)
Definition: main.c:914
HRESULT create_inmemory_fileloader(IDWriteInMemoryFontFileLoader **loader)
Definition: font.c:7358
HRESULT get_fontsig_from_font(IDWriteFont *, FONTSIGNATURE *)
Definition: font.c:2566
void release_system_fontfallback(IDWriteFontFallback1 *fallback)
Definition: analyzer.c:2575
void opentype_get_font_typo_metrics(struct file_stream_desc *stream_desc, unsigned int *ascent, unsigned int *descent)
Definition: opentype.c:1954
HRESULT shape_get_glyphs(struct scriptshaping_context *context, const unsigned int *scripts)
Definition: shape.c:308
HRESULT opentype_get_colr_glyph(const struct dwrite_fonttable *table, UINT16 glyph, struct dwrite_colorglyph *color_glyph)
Definition: opentype.c:3000
void dwrite_cmap_init(struct dwrite_cmap *cmap, IDWriteFontFile *file, unsigned int face_index, DWRITE_FONT_FACE_TYPE face_type)
Definition: opentype.c:1818
HRESULT format_set_flowdirection(struct dwrite_textformat_data *format, DWRITE_FLOW_DIRECTION direction, BOOL *changed)
Definition: format.c:95
unsigned int opentype_layout_find_script(const struct scriptshaping_cache *cache, unsigned int kind, DWORD tag, unsigned int *script_index)
Definition: opentype.c:3279
#define GLYPH_MAX
void factory_detach_gdiinterop(IDWriteFactory7 *factory, IDWriteGdiInterop1 *interop)
Definition: main.c:2103
HRESULT format_set_optical_alignment(struct dwrite_textformat_data *format, DWRITE_OPTICAL_ALIGNMENT alignment)
Definition: format.c:194
void dwrite_fontface_get_glyph_bbox(IDWriteFontFace *fontface, struct dwrite_glyphbitmap *bitmap)
Definition: font.c:158
HRESULT factory_get_cached_fontface(IDWriteFactory7 *factory, IDWriteFontFile *const *files, UINT32 num_files, DWRITE_FONT_SIMULATIONS simulations, struct list **cache, REFIID riid, void **obj)
Definition: main.c:926
unsigned int(* p_cmap_get_ranges_func)(const struct dwrite_cmap *cmap, unsigned int max_count, DWRITE_UNICODE_RANGE *ranges)
HRESULT create_matching_font(IDWriteFontCollection *collection, const WCHAR *family, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style, DWRITE_FONT_STRETCH stretch, REFIID riid, void **obj)
Definition: analyzer.c:2479
BOOL lb_is_newline_char(WCHAR)
Definition: analyzer.c:851
font_flags
@ FONT_IS_COLORED
@ FONTFACE_KERNING_PAIRS
@ FONTFACE_VERTICAL_VARIANTS
@ FONTFACE_NO_VERTICAL_VARIANTS
@ FONT_IS_SYMBOL
@ FONT_IS_MONOSPACED
@ FONTFACE_NO_KERNING_PAIRS
void release_scriptshaping_cache(struct scriptshaping_cache *)
Definition: shape.c:59
HRESULT create_system_fontfallback(IDWriteFactory7 *factory, IDWriteFontFallback1 **fallback)
Definition: analyzer.c:3029
UINT16 opentype_cmap_get_glyph(const struct dwrite_cmap *cmap, unsigned int ch)
Definition: opentype.c:1792
HRESULT get_family_names_from_stream(IDWriteFontFileStream *, UINT32, DWRITE_FONT_FACE_TYPE, IDWriteLocalizedStrings **)
UINT32 opentype_get_glyph_image_formats(IDWriteFontFace5 *fontface)
Definition: opentype.c:3191
HRESULT create_trimmingsign(IDWriteFactory7 *factory, IDWriteTextFormat *format, IDWriteInlineObject **sign)
Definition: format.c:891
HRESULT compute_glyph_origins(DWRITE_GLYPH_RUN const *run, DWRITE_MEASURING_MODE measuring_mode, D2D1_POINT_2F baseline_origin, DWRITE_MATRIX const *transform, D2D1_POINT_2F *origins)
Definition: main.c:1726
struct scriptshaping_cache * fontface_get_shaping_cache(struct dwrite_fontface *fontface)
Definition: font.c:559
static unsigned short get_table_entry_16(const unsigned short *table, WCHAR ch)
unsigned int shape_get_feature_1_mask(const struct shaping_features *features, unsigned int tag)
Definition: opentype.c:4822
static const char * debugstr_matrix(const DWRITE_MATRIX *m)
HRESULT bidi_computelevels(struct bidi_char *chars, unsigned int count, UINT8 baselevel)
Definition: bidi.c:1070
unsigned int opentype_get_gasp_flags(const struct dwrite_fonttable *gasp, float emsize)
Definition: opentype.c:2895
HRESULT create_font_file(IDWriteFontFileLoader *loader, const void *reference_key, UINT32 key_size, IDWriteFontFile **font_file)
Definition: font.c:5400
struct dwrite_fontface * unsafe_impl_from_IDWriteFontFace(IDWriteFontFace *iface)
Definition: font.c:2536
static unsigned short get_table_entry_32(const unsigned short *table, UINT ch)
HRESULT create_fontfallback_builder(IDWriteFactory7 *factory, IDWriteFontFallbackBuilder **builder)
Definition: analyzer.c:2929
HRESULT create_text_format(const WCHAR *family_name, IDWriteFontCollection *collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style, DWRITE_FONT_STRETCH stretch, float size, const WCHAR *locale, REFIID riid, void **out)
Definition: format.c:714
HRESULT clone_localizedstrings(IDWriteLocalizedStrings *iface, IDWriteLocalizedStrings **strings)
Definition: main.c:497
static BOOL dwrite_array_reserve(void **elements, size_t *capacity, size_t count, size_t size)
HRESULT opentype_get_font_familyname(const struct file_stream_desc *desc, DWRITE_FONT_FAMILY_MODEL family_model, IDWriteLocalizedStrings **names)
Definition: opentype.c:2629
IDWriteTextAnalyzer2 * get_text_analyzer(void)
Definition: analyzer.c:2241
HRESULT create_fontset_builder(IDWriteFactory7 *factory, IDWriteFontSetBuilder2 **ret)
Definition: font.c:8391
IDWriteFontFileLoader * get_local_fontfile_loader(void)
Definition: font.c:6000
HRESULT opentype_cmap_get_unicode_ranges(const struct dwrite_cmap *cmap, unsigned int max_count, DWRITE_UNICODE_RANGE *ranges, unsigned int *count)
Definition: opentype.c:1943
unsigned int opentype_get_cpal_palettecount(const struct dwrite_fonttable *table)
Definition: opentype.c:2927
void shape_add_feature_full(struct shaping_features *features, unsigned int tag, unsigned int flags, unsigned int value)
Definition: shape.c:117
static void dwrite_matrix_multiply(DWRITE_MATRIX *a, const DWRITE_MATRIX *b)
void opentype_layout_scriptshaping_cache_init(struct scriptshaping_cache *cache)
Definition: opentype.c:3238
void(* stage_func)(struct scriptshaping_context *context, const struct shaping_features *features)
HRESULT create_colorglyphenum(D2D1_POINT_2F origin, const DWRITE_GLYPH_RUN *run, const DWRITE_GLYPH_RUN_DESCRIPTION *desc, DWRITE_GLYPH_IMAGE_FORMATS formats, DWRITE_MEASURING_MODE mode, const DWRITE_MATRIX *transform, UINT32 palette, IDWriteColorGlyphRunEnumerator1 **enumerator)
void get_logfont_from_font(IDWriteFont *, LOGFONTW *)
Definition: font.c:2554
HRESULT create_fontfacereference(IDWriteFactory7 *factory, IDWriteFontFile *file, UINT32 face_index, DWRITE_FONT_SIMULATIONS simulations, DWRITE_FONT_AXIS_VALUE const *axis_values, UINT32 axis_values_count, IDWriteFontFaceReference1 **reference)
Definition: font.c:7082
HRESULT opentype_get_kerning_pairs(struct dwrite_fontface *fontface, unsigned int count, const UINT16 *glyphs, INT32 *values)
Definition: opentype.c:6624
BOOL opentype_has_kerning_pairs(struct dwrite_fontface *fontface)
Definition: opentype.c:6555
static const MATRIX_2X2 identity_2x2
void factory_unlock(IDWriteFactory7 *factory)
Definition: main.c:920
BOOL is_face_type_supported(DWRITE_FONT_FACE_TYPE)
Definition: opentype.c:1337
HRESULT shape_get_typographic_features(struct scriptshaping_context *context, const unsigned int *scripts, unsigned int max_tagcount, unsigned int *actual_tagcount, DWRITE_FONT_FEATURE_TAG *tags)
Definition: shape.c:375
HRESULT create_font_resource(IDWriteFactory7 *factory, IDWriteFontFile *file, UINT32 face_index, IDWriteFontResource **resource)
Definition: font.c:7583
void dwrite_cmap_release(struct dwrite_cmap *cmap)
Definition: opentype.c:1932
#define MAX_SHAPING_STAGE
SCRIPT_JUSTIFY
@ SCRIPT_JUSTIFY_ARABIC_RA
@ SCRIPT_JUSTIFY_ARABIC_HA
@ SCRIPT_JUSTIFY_RESERVED3
@ SCRIPT_JUSTIFY_ARABIC_SEEN
@ SCRIPT_JUSTIFY_ARABIC_BLANK
@ SCRIPT_JUSTIFY_ARABIC_NORMAL
@ SCRIPT_JUSTIFY_RESERVED1
@ SCRIPT_JUSTIFY_ARABIC_BA
@ SCRIPT_JUSTIFY_RESERVED2
@ SCRIPT_JUSTIFY_ARABIC_SEEN_M
@ SCRIPT_JUSTIFY_NONE
@ SCRIPT_JUSTIFY_ARABIC_BARA
@ SCRIPT_JUSTIFY_BLANK
@ SCRIPT_JUSTIFY_CHARACTER
@ SCRIPT_JUSTIFY_ARABIC_ALEF
@ SCRIPT_JUSTIFY_ARABIC_KASHIDA
void opentype_get_font_properties(const struct file_stream_desc *stream_desc, struct dwrite_font_props *props)
Definition: opentype.c:2090
HRESULT create_font_collection_from_set(IDWriteFactory7 *factory, IDWriteFontSet *set, DWRITE_FONT_FAMILY_MODEL family_model, REFGUID riid, void **ret)
Definition: font.c:4857
HRESULT shape_check_typographic_feature(struct scriptshaping_context *context, const unsigned int *scripts, unsigned int tag, unsigned int glyph_count, const UINT16 *glyphs, UINT8 *feature_applies)
Definition: shape.c:415
HMODULE dwrite_module
Definition: main.c:38
const void * get_fontface_table(IDWriteFontFace5 *fontface, UINT32 tag, struct dwrite_fonttable *table)
Definition: font.c:666
HRESULT opentype_get_vertical_glyph_variants(struct dwrite_fontface *fontface, unsigned int glyph_count, const UINT16 *nominal_glyphs, UINT16 *glyphs)
Definition: opentype.c:6498
const char * debugstr_sa_script(UINT16)
Definition: analyzer.c:209
HRESULT format_set_readingdirection(struct dwrite_textformat_data *format, DWRITE_READING_DIRECTION direction, BOOL *changed)
Definition: format.c:77
void opentype_get_font_metrics(struct file_stream_desc *, DWRITE_FONT_METRICS1 *, DWRITE_CARET_METRICS *)
Definition: opentype.c:1973
HRESULT shape_get_positions(struct scriptshaping_context *context, const unsigned int *scripts)
Definition: shape.c:233
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
Character const *const size_t const max_count
Definition: fullpath.cpp:66
GLuint start
Definition: gl.h:1545
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLuint GLuint end
Definition: gl.h:1545
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLenum func
Definition: glext.h:6028
GLuint GLenum GLenum transform
Definition: glext.h:9407
GLbitfield stages
Definition: glext.h:7620
GLuint GLuint * names
Definition: glext.h:11545
GLsizei const GLchar *const * strings
Definition: glext.h:7622
GLsizeiptr size
Definition: glext.h:5919
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLenum mode
Definition: glext.h:6217
GLint reference
Definition: glext.h:11729
GLboolean GLenum GLenum GLvoid * values
Definition: glext.h:5666
GLbitfield flags
Definition: glext.h:7161
GLenum GLsizei len
Definition: glext.h:6722
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
const GLfloat * m
Definition: glext.h:10848
unsigned int UINT
Definition: sysinfo.c:13
REFIID riid
Definition: atlbase.h:39
voidpf uLong int origin
Definition: ioapi.h:144
#define a
Definition: ke_i.h:78
#define sign(x)
Definition: mapdesc.cc:613
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
const char * tags[99]
Definition: apphelp.c:216
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1683
INTERNETFEATURELIST feature
Definition: misc.c:1807
static HPALETTE palette
Definition: clipboard.c:1457
direction
Definition: netio.c:882
#define BOOL
Definition: nt_native.h:43
short WCHAR
Definition: pedump.c:58
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
#define REFIID
Definition: guiddef.h:118
const WCHAR * str
#define wine_rb_tree
Definition: rbtree.h:405
weight
Definition: sortkey.c:157
Definition: dcommon.idl:28
Definition: scsiwmi.h:51
UINT8 nominal_bidi_class
UINT8 resolved
UINT8 bidi_class
unsigned int ch
Definition: uimain.c:89
Definition: cache.c:41
Definition: http.c:7252
const UINT16 * glyph_id_array
struct dwrite_cmap::@304::@306 format6_10
union dwrite_cmap::@304 u
const UINT16 * id_range_offset
const UINT16 * ends
unsigned int group_count
const UINT16 * starts
unsigned int glyph_id_array_len
const void * data
struct dwrite_cmap::@304::@305 format4
unsigned int seg_count
IDWriteFontFileStream * stream
unsigned short symbol
struct dwrite_cmap::@304::@307 format12_13
unsigned int first
unsigned int last
void * table_context
p_cmap_get_glyph_func get_glyph
const UINT16 * id_delta
p_cmap_get_ranges_func get_ranges
FONTSIGNATURE fontsig
DWRITE_FONT_WEIGHT weight
DWRITE_FONT_STRETCH stretch
DWRITE_FONT_STYLE style
DWRITE_PANOSE panose
UINT32 glyph_image_formats
DWRITE_FONT_METRICS1 metrics
struct dwrite_fontface::@309 typo_metrics
struct dwrite_cmap cmap
DWRITE_GLYPH_METRICS * glyphs[GLYPH_MAX/GLYPH_BLOCK_SIZE]
DWRITE_FONT_STYLE style
DWRITE_FONT_WEIGHT weight
CRITICAL_SECTION cs
IDWriteFontFaceReference IDWriteFontFaceReference_iface
IDWriteLocalizedStrings * info_strings[DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG+1]
struct scriptshaping_cache * shaping_cache
DWRITE_CARET_METRICS caret
struct dwrite_fonttable kern
struct dwrite_fonttable cpal
struct dwrite_fonttable gasp
IDWriteFactory7 * factory
unsigned int ascent
DWRITE_FONT_STRETCH stretch
struct dwrite_fonttable colr
struct fontfacecached * cached
struct list mru
DWRITE_PANOSE panose
IDWriteFontFace5 IDWriteFontFace5_iface
p_dwrite_fontface_get_font_object get_font_object
IDWriteLocalizedStrings * family_names
IDWriteFontFile * file
unsigned int descent
IDWriteFontFileStream * stream
unsigned int flags
DWRITE_FONT_FACE_TYPE type
IDWriteLocalizedStrings * names
struct dwrite_fontface::@308 cache
FONTSIGNATURE fontsig
struct dwrite_fonttable vdmx
const BYTE * data
DWRITE_MATRIX * m
unsigned char * values
struct dwrite_outline::@311 points
struct dwrite_outline::@310 tags
D2D1_POINT_2F * values
DWRITE_WORD_WRAPPING wrapping
DWRITE_PARAGRAPH_ALIGNMENT paralign
DWRITE_FONT_WEIGHT weight
IDWriteInlineObject * trimmingsign
IDWriteFontCollection * collection
DWRITE_AUTOMATIC_FONT_AXES automatic_axes
DWRITE_FONT_STRETCH stretch
DWRITE_VERTICAL_GLYPH_ORIENTATION vertical_orientation
unsigned int axis_values_count
DWRITE_OPTICAL_ALIGNMENT optical_alignment
DWRITE_FONT_STYLE style
DWRITE_FONT_AXIS_VALUE * axis_values
DWRITE_LINE_SPACING spacing
DWRITE_TRIMMING trimming
DWRITE_READING_DIRECTION readingdir
DWRITE_TEXT_ALIGNMENT textalignment
DWRITE_FLOW_DIRECTION flow
IDWriteFontFallback * fallback
IDWriteTextFormat3 IDWriteTextFormat3_iface
DWRITE_FONT_AXIS_TAG tag
unsigned int attributes
Definition: main.c:439
DWRITE_FONT_FACE_TYPE face_type
IDWriteFontFileStream * stream
Definition: fci.c:123
IDWriteFactory7 * factory
IDWriteFontFile * file
DWRITE_FONT_FACE_TYPE face_type
IDWriteFontFileStream * stream
DWRITE_FONT_SIMULATIONS simulations
struct dwrite_font_data * font_data
struct list entry
IDWriteFontFace5 * fontface
const DWRITE_MATRIX * transform
DWRITE_GRID_FIT_MODE gridfit_mode
DWRITE_TEXT_ANTIALIAS_MODE aa_mode
DWRITE_RENDERING_MODE1 rendering_mode
const DWRITE_GLYPH_RUN * run
DWRITE_MEASURING_MODE measuring_mode
Definition: loader.c:72
unsigned int feature_list
unsigned int lookup_list
unsigned int script_list
unsigned int markattachclassdef
struct ot_gsubgpos_table gpos
const struct shaping_font_ops * font
struct scriptshaping_cache::@312 gdef
unsigned int markglyphsetdef
struct ot_gsubgpos_table gsub
unsigned int classdef
DWRITE_MEASURING_MODE measuring_mode
struct shaping_glyph_properties * glyph_props
const DWRITE_TYPOGRAPHIC_FEATURES ** features
DWRITE_SHAPING_GLYPH_PROPERTIES * glyph_props
const DWRITE_SHAPING_GLYPH_PROPERTIES * glyph_props
DWRITE_GLYPH_OFFSET * offsets
struct scriptshaping_cache * cache
unsigned int global_mask
const UINT16 * glyphs
const struct ot_gsubgpos_table * table
struct scriptshaping_context::@313::@315 pos
unsigned int max_glyph_count
struct scriptshaping_context::@314 user_features
unsigned int nesting_level_left
struct scriptshaping_context::@313::@316 subst
unsigned int range_count
const struct shaper * shaper
DWRITE_SHAPING_TEXT_PROPERTIES * text_props
const unsigned int * range_lengths
struct shaping_glyph_info * glyph_infos
unsigned int lookup_mask
const UINT16 * clustermap
unsigned int has_gpos_attachment
union scriptshaping_context::@313 u
p_apply_context_lookup apply_context_lookup
unsigned int glyph_count
struct scriptshaping_context::@313::@317 buffer
void(* setup_masks)(struct scriptshaping_context *context, const struct shaping_features *features)
void(* collect_features)(struct scriptshaping_context *context, struct shaping_features *features)
unsigned int default_value
unsigned int tag
unsigned int shift
unsigned int mask
unsigned int flags
unsigned int index
unsigned int stage
unsigned int max_value
struct shaping_feature * features
unsigned int stage
void(* grab_font_table)(void *context, UINT32 table, const BYTE **data, UINT32 *size, void **data_context)
UINT16(* get_font_upem)(void *context)
void(* release_font_table)(void *context, void *data_context)
UINT16(* get_glyph)(void *context, unsigned int codepoint)
BOOL(* has_glyph)(void *context, unsigned int codepoint)
unsigned int codepoint
unsigned int props
unsigned int start_text_idx
unsigned int last_lookup
stage_func func
Definition: style.c:91
size_t count
unsigned int * tags
size_t capacity
Definition: ecma_167.h:138
IDWriteFactory7 * factory
IDWriteTextFormat * format
const DWRITE_MATRIX * transform
const WCHAR * string
#define max(a, b)
Definition: svc.c:63
T1_FIELD_DICT_FONTDICT family_name
Definition: t1tokens.h:30
int32_t INT32
Definition: typedefs.h:58
float FLOAT
Definition: typedefs.h:69
uint16_t * LPWSTR
Definition: typedefs.h:56
ULONG_PTR SIZE_T
Definition: typedefs.h:80
int32_t INT
Definition: typedefs.h:58
uint32_t UINT32
Definition: typedefs.h:59
Definition: pdh_main.c:64
static const WCHAR props[]
Definition: wbemdisp.c:288
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383
unsigned char BYTE
Definition: xxhash.c:193