Co nowego w funkcji DirectWrite
W tym temacie opisano nowości w DirectWrite dla różnych wersji systemu Windows 10.
Zestaw SDK aplikacji systemu Windows
Zestaw SDK aplikacji systemu Windows wprowadza nową wersję funkcji DirectWrite o nazwie DWriteCore. Aby uzyskać więcej informacji, zobacz omówienie DWriteCore.
Windows 10 Maj 2019 Aktualizacja
Nie dodano żadnych funkcji ani interfejsów API ani nie zaktualizowano systemu Windows 10 w wersji 1903 (10.0; Kompilacja 18362) — znana również jako windows 10 maj 2019 Update.
Windows 10 październik 2018 Update
Następujące funkcje i interfejsy API zostały dodane lub zaktualizowane dla systemu Windows 10 w wersji 1809 (10.0; Build 17763) — znany również jako Windows 10 październik 2018 Update.
Nowy
- wyliczenie DWRITE_FONT_SOURCE_TYPE
- interfejs IDWriteFontSet3 i jego metody
Windows 10 Aktualizacja z kwietnia 2018
Dodano lub zaktualizowano następujące funkcje i interfejsy API dla systemu Windows 10 w wersji 1803 (10.0; Build 17134) — znany również jako Windows 10 April 2018 Update.
Nowy
- interfejs IDWriteFactory7 i jego metody
- interfejs IDWriteFontCollection3 i jego metody
- interfejs IDWriteFontSet2 i jego metody
Windows 10 Fall Creators Update
Następujące funkcje i interfejsy API zostały dodane lub zaktualizowane dla systemu Windows 10 w wersji 1709 (10.0; Kompilacja 16299) — znana również jako Windows 10 Fall Creators Update.
Nowy
- wyliczenie DWRITE_AUTOMATIC_FONT_AXES
- wyliczenie DWRITE_FONT_AXIS_ATTRIBUTES
- wyliczenie DWRITE_FONT_AXIS_TAG
- wyliczenie DWRITE_FONT_FAMILY_MODEL
- interfejs IDWriteFactory6 i jego metody
- interfejs IDWriteFontCollection2 i jego metody
- interfejs IDWriteFontFace5 i jego metody
- interfejs IDWriteFontFaceReference1 i jego metody
- interfejs IDWriteFontFallback1 i jego metody
- interfejs IDWriteFontFamily2 i jego metody
- interfejs IDWriteFontList2 i jego metody
- interfejs IDWriteFontResource i jego metody
- interfejs IDWriteFontSet1 i jego metody
- interfejs IDWriteFontSetBuilder2 i jego metody
- interfejs IDWriteTextFormat3 i jego metody
- interfejs IDWriteTextLayout4 i jego metody
- makro DWRITE_MAKE_FONT_AXIS_TAG
- struktura DWRITE_FONT_AXIS_RANGE
- struktura DWRITE_FONT_AXIS_VALUE
Przeniesiony
Wyliczenie DWRITE_GLYPH_IMAGE_FORMATS przeniesiono z dwrite_3.h
do dcommon.h
.
Windows 10 Creators Update
Dodano lub zaktualizowano następujące funkcje i interfejsy API dla systemu Windows 10 w wersji 1703 (10.0; Build 15063) — znany również jako Windows 10 Creators Update.
Rozszerzona obsługa interfejsu API dla czcionek w chmurze i niestandardowych zestawów czcionek
Windows 10 dołączone interfejsy API, które umożliwiają aplikacjom łatwy dostęp do czcionek z usługi czcionek systemu Windows. W aktualizacji Windows 10 Creators Update interfejsy API czcionek zdalnych zostały rozszerzone, aby umożliwić łatwy dostęp do czcionek z innych źródeł w internecie, dostępnych za pomocą protokołów HTTP lub HTTPS.
Nowe interfejsy API czcionek zdalnych mogą być używane z publicznymi lub prywatnymi usługami sieci Web. Ponadto mogą one służyć do uzyskiwania dostępu do surowych plików czcionek OpenType (.ttf, .otf, .ttc, .otc) lub czcionek spakowanych w formaty kontenerów WOFF lub WOFF2. Nowe interfejsy API są używane w połączeniu z istniejącymi interfejsami API na potrzeby kolejkowania żądań pobierania zdalnych danych czcionek i obsługi rzeczywistego procesu pobierania.
Inne nowe interfejsy API ułatwiają aplikacjom pracę z niestandardowymi czcionkami przechowywanymi w lokalnym systemie plików lub ładowanymi do buforu pamięci.
Aby uzyskać więcej informacji na temat nowych interfejsów API do pracy z czcionkami zdalnymi, niestandardowymi zestawami czcionek lub formatami kontenerów WOFF/WOFF2, zobacz następujący temat:
niestandardowy zestaw czcionek
Zobacz również linki do tematów referencyjnych interfejsu API podanych w tym temacie. Użycie nowych i istniejących interfejsów API do pracy z czcionkami niestandardowymi przedstawiono również w przykładzie DirectWrite Custom Font Sets. Ten przykład ilustruje implementację kodu dla kilku różnych scenariuszy, w tym czcionek lokalnych na dysku, czcionek zdalnych w Sieci Web, danych czcionek w pamięci i czcionek w zapakowanych formatach WOFF lub WOFF2.
Początkowa obsługa odmian czcionek OpenType
Wersja 1.8 specyfikacji formatu czcionki OpenType wprowadziła ekscytujące nowe rozszerzenie do formatu znanego jako odmiany czcionek OpenType. DirectWrite został zaktualizowany w aktualizacji Windows 10 Creators Update, aby obsługiwać nazwane instancje czcionek zmiennych. Aby uzyskać więcej informacji, zobacz następujący temat:
Rocznicowa aktualizacja systemu Windows 10
Dodano lub zaktualizowano następujące funkcje i interfejsy API dla systemu Windows 10 w wersji 1607 (10.0; Kompilacja 14393) — znana również jako rocznicowa aktualizacja systemu Windows 10.
Ulepszona obsługa czcionek kolorów
Począwszy od rocznicowej aktualizacji systemu Windows 10, funkcja DirectWrite zapewnia wbudowaną obsługę szerszej gamy formatów czcionek kolorów, dzięki czemu deweloperzy mogą używać większej liczby czcionek w aplikacjach opartych na funkcji DirectWrite niż kiedykolwiek wcześniej. Obejmuje to obsługę:
- Tabela "COLR" OpenType, która umożliwia kompaktową zawartość wektorów w czcionkach. (Obsługiwane od systemu Windows 8.1).
- Tabela "SVG" OpenType, która umożliwia zawartość SVG w czcionkach.
- Tabela "CBDT" OpenType, która umożliwia kolorową zawartość mapy bitowej w czcionkach.
- Tabela "sbix" OpenType, która umożliwia kolorową zawartość mapy bitowej w czcionkach.
direct2D, która używa directWrite do renderowania tekstu, obsługuje te formaty czcionek kolorów automatycznie po włączeniu flagi D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT. Aby uzyskać więcej informacji, zobacz następujące tematy:
Wsparcie dla usług Adobe Typekit i innych klientów serwisów czcionek
Niektóre usługi czcionek, takie jak Adobe Typekit, mają narzędzia po stronie klienta, które umożliwiają użytkownikowi ładowanie czcionek z usługi i używanie ich w różnych aplikacjach na maszynie z systemem Windows. Te narzędzia zazwyczaj działają przez wykonywanie wywołań podczas działania do interfejsu GDI, aby załadować dodatkowe czcionki, zamiast instalować czcionki na stałe w systemie. Ze względu na ten projekt w starszych wersjach systemu Windows czcionki będą używane w aplikacjach opartych na GDI, ale nie w aplikacjach DirectWrite. Począwszy od rocznicowej aktualizacji systemu Windows 10, czcionki ładowane przez takie narzędzia będą również dostępne w funkcji DirectWrite, a także w GDI.
Czcionki ładowane przez narzędzie font-service są widoczne w kolekcji czcionek systemowych uzyskanych przez wywołanie metody IDWriteFactory::GetSystemFontCollection. Ponieważ usługi czcionek zwykle są zgodne z modelem licencjonowania poszczególnych użytkowników, czcionki ładowane przez te narzędzia są zarządzane dla poszczególnych użytkowników. W związku z tym istniejące aplikacje DirectWrite mogą korzystać z czcionek, które użytkownicy końcowi uzyskali przy użyciu takich usług, bez żadnych zmian kodu wymaganych w aplikacji, zapewniając użytkownikom bardziej bezproblemowe środowisko.
Obsługa kolekcji OpenType przy użyciu konspektów CFF
Formaty czcionek OpenType i TrueType od dawna obsługują możliwość spakowania wielu czcionek w jednym pliku czcionek, znanym jako "kolekcja czcionek". Specyfikacja OpenType zawsze zezwalała fontom na używanie formatów TrueType lub CFF dla danych konturów glifów. Do niedawna jednak specyfikacja zezwalała tylko na kolekcje, w których kontury glyph używają formatu TrueType. OpenType w wersji 1.7 umożliwia teraz kolekcje używanie formatów TrueType lub CFF dla danych o konturze glifów. Począwszy od rocznicowej aktualizacji systemu Windows 10, funkcja DirectWrite będzie obsługiwać kolekcje OpenType przy użyciu danych konspektu CFF.
Windows 10
Integracja usługi czcionek systemu Windows
Począwszy od systemu Windows 10, czcionki dołączone do systemu Windows są dostępne w usłudze online i są dostępne za pośrednictwem funkcji DirectWrite na dowolnym urządzeniu z systemem Windows 10. Dotyczy to wszystkich wersji systemu Windows 10. Dzięki temu aplikacje mogą wyświetlać zawartość przy użyciu dowolnej czcionki systemu Windows, nawet jeśli czcionka nie jest obecnie zainstalowana na urządzeniu.
Obsługa mechanizmów directWrite font-service została zaimplementowana w strukturze XAML, co oznacza, że wszystkie aplikacje korzystające z języka XAML nie wymagają żadnych zmian w kodzie w celu skorzystania z usługi czcionek. Przykładowy kod Czcionki do pobrania (XAML) pokazuje to. Aplikacje, które bezpośrednio wywołują interfejsy API DirectWrite, będą musiały używać nowych interfejsów API do korzystania z mechanizmów serwisowych czcionek. Aby uzyskać więcej informacji, zobacz następujące tematy:
- IDWriteFactory3::GetSystemFontCollection, metoda
- interfejs IDWriteTextLayout3
- interfejs IDWriteFontDownloadQueue
- IDWriteFontDownloadListener interfejs
Przykładowy kod Czcionki do pobrania (DirectWrite) ilustruje użycie kilku nowych interfejsów API.
Interfejsy zestawu czcionek
Interfejsy kolekcji czcionek DirectWrite zapewniają widok kolekcji czcionek zorganizowanych przez rodziny czcionek, używając wagi, rozciągnięcia i stylu jako atrybutów rodziny podrzędnej. Wewnętrznie funkcja DirectWrite implementuje interfejs kolekcji czcionek przy użyciu płaskiej listy czcionek z różnymi atrybutami. Takie podejście jest bardziej elastyczne, ponieważ może obsługiwać wyliczanie rodzin o różnych wagach, rozciągnięciu i stylu, ale także wspiera zapytania i filtrowanie za pomocą innych atrybutów czcionki.
W systemie Windows 10 ten bardziej elastyczny mechanizm obsługi czcionek jest udostępniany aplikacjom za pośrednictwem zestawu IDWriteFontSet i powiązanych interfejsów API. Interfejsy API zestawu czcionek mogą służyć na przykład do tworzenia niestandardowego interfejsu użytkownika selektora czcionek, wykorzystując właściwości czcionki dostosowanej przez aplikację w niestandardowym zestawie czcionek.
Aby uzyskać więcej informacji, zobacz następujące tematy:
- interfejs IDWriteFontSet
- interfejs IDWriteFontSetBuilder
- wyliczenie DWRITE_FONT_PROPERTY_ID
- metoda IDWriteFontFactory3::GetSystemFontSet
Nowe tryby odstępów między wierszami układu tekstu
Interfejsy formatowania tekstu i układu tekstu DirectWrite obsługują nowe tryby odstępów między wierszami. We wcześniejszych wersjach, implementacja układu tekstu DirectWrite pozwalała na interlinii, gdzie wysokość każdego wiersza była ustawiana automatycznie na podstawie najwyższego elementu w wierszu (tryb „domyślny”) lub interlinii ustawionej na jednolitą wysokość określoną przez aplikację (tryb „jednolity”). W systemie Windows 10 obsługiwany jest dodatkowy "proporcjonalny" tryb odstępu między wierszami, który zapewnia aplikacjom więcej opcji zachowania odstępów między wierszami. Aby uzyskać więcej informacji, zobacz następujące tematy:
- interfejs IDWriteTextLayout3
- IDWriteTextLayout3::SetLineSpacing, metoda
- struktura DWRITE_LINE_SPACING
- Wyliczenie DWRITE_LINE_SPACING_METHOD
- wyliczenie DWRITE_FONT_LINE_GAP_USAGE
- IDWriteTextLayout3::GetLineMetrics, metoda
- struktura DWRITE_LINE_METRICS1
Przykładowy kod line spacing (DirectWrite) ilustruje użycie kilku nowych interfejsów API, a także udostępnia wizualizację wszystkich różnych trybów odstępów między wierszami, które znacznie ułatwiają zrozumienie różnych dostępnych opcji odstępów między wierszami.
Współdziałanie GDI
Od czasu wprowadzenia do systemu Windows 7 funkcja DirectWrite dostarczyła ścieżkę migracji dla aplikacji, które zostały pierwotnie zaimplementowane przy użyciu modelu czcionek GDI, układu tekstu i renderowania. Zostało to udostępnione za pośrednictwem interfejsu [[IDWriteGdiInterop]]. W systemie Windows 10 dodatkowe interfejsy API zapewniają dodatkowe możliwości interoperacyjności GDI. Aby uzyskać dodatkowe informacje, zobacz następujący temat:
- interfejs IDWriteGdiInterop1
Windows 8.1
Renderowanie czcionek kolorów
Począwszy od systemu Windows 8.1, funkcja DirectWrite zapewnia obsługę czcionek kolorów. Direct2D, która używa DirectWrite do renderowania tekstu, dodała wartość wyliczenia D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT, aby włączyć tę opcję podczas rysowania tekstu. Aby uzyskać więcej informacji, zobacz następujące tematy:
Windows 8
Nowy interfejs fabryki, taki jak IDWriteFactory1, umożliwiający tworzenie dodatkowych interfejsów, które są dostępne.
Dodatkowe właściwości czcionki, takie jak: indeks górny/dolny, pochylenie kreseczki, PANOSE i zakresy Unicode.
Ulepszenia odstępów, takie jak: odstępy między znakami kontrolnymi, starsze pary kerningowe i wyrównanie tekstu. Aby uzyskać więcej informacji, zobacz sekcję Justowanie, Kerning i Odstępy.
Ulepszono obiekty docelowe i parametry renderowania.
Ulepszenia analizy złożoności tekstu.
Nowe właściwości skryptu, obsługa nowych skryptów (Unicode 6), zastępcze dodatki czcionkowe, sparowanie nawiasów i rozszerzenie użycia bidi.
Poprawa wydajności pamięci podręcznej czcionek. Począwszy od systemu Windows 8 pamięć podręczna czcionek jest globalna i rozpoczyna się po uruchomieniu komputera.
Nowe tryby renderowania.
Począwszy od systemu Windows 8, DirectWrite obsługuje wiele funkcji, które ułatwiają tworzenie aplikacji na rynku światowym.
Oto kilka obszarów, które ułatwiają implementowanie rozbudowanych aplikacji tekstowych, które mogą być dostosowane do klientów na całym świecie.
Rozszerzenia chińskie, japońskie i koreańskie C & D
Co kilka lat Konsorcjum Unicode publikuje ustandaryzowaną listę dodatków do bloku chińskiego, japońskiego i koreańskiego ujednoliconego ideografu. W wersji Unicode 6.0 wydali bloki rozszerzeń C i D. Te bloki ideografów można znaleźć w witrynie internetowej Unicode Extension C i Extension D.
Począwszy od systemu Windows 8, DirectWrite obsługuje punkty kodu Unicode dla tych nowych bloków ustandaryzowanych ideografów CJK, dzięki czemu można ich używać w aplikacjach DirectWrite.
Symbol rupii indyjskiej
W marcu 2005 r. rząd indyjski ogłosił konkurs na wybór symbolu indyjskiej waluty rupii. Po dużej konkurencji, w dniu 15 lipca 2010 r., rząd indyjski wybrał projekt utworzony przez D. Udaya Kumar, a DirectWrite obejmuje obsługę punktu kodowego Unicode powiązanego z symbolem. Dlatego aplikacje DirectWrite obsługują teraz ten symbol waluty.
Emoji
DirectWrite obsługuje teraz używanie emoji w aplikacjach. Poprzednie wersje DirectWrite przedstawiały brakujące pole znaku, jeśli próbowano renderować ideogram emoji. Począwszy od systemu Windows 8, funkcja DirectWrite obsługuje blok kodu Unicode skojarzony z emoji, więc jeśli aplikacja używa standardowych punktów kodu Unicode dla emoji, wyświetla odpowiednie glify.
Mjanma, Tiffinagh i Stare języki Hangul
Począwszy od systemu Windows 8, DirectWrite obsługuje blok punktów kodowych Unicode odpowiadających glifom w językach Mjanmy, Tiffinagh i Old Hangul, dzięki czemu można tworzyć aplikacje zawierające tekst z tych trzech języków. Oprócz obsługi tych znaków funkcja DirectWrite obsługuje unikatowy sposób, w jaki sposób Old Hangul obsługuje podział wierszy.
Nowe skrypty
Począwszy od systemu Windows 8, metoda GetScriptProperties zwraca informacje dla wielu nowych skryptów. Oto lista skryptów, które DirectWrite obsługuje w systemie Windows 8 i po.
- Awestyjski
- Bamum
- Batak
- Brahmi
- Egipskie hieroglify
- Cesarsko-aramejski
- Pismo inskrypcyjne Pahlavi
- Partyjski inskrypcyjny
- Jawajski
- Kaithi
- Lisu (Fraser)
- Mandaic
- Meetei Mayek
- Stare Południowe Emiraty Arabskie
- Staro-turecki (Orchoński)
- Samarytanin
- Tai Tham (Lanna)
- Tai Viet