Novidades no DirectWrite
Esse tópico descreve as novidades no DirectWrite para várias versões do Windows 10.
SDK do Aplicativo do Windows
O SDK do Aplicativo Windows apresenta uma nova versão do DirectWrite, chamada DWriteCore. Para obter mais detalhes, consulte a visão geral do DWriteCore.
Atualização de maio de 2019 para Windows 10
Nenhum recurso ou APIs foram adicionados nem atualizados para o Windows 10, versão 1903 (10.0; Build 18362), também conhecido como Atualização de maio de 2019 do Windows 10.
Atualização de outubro de 2018 para o Windows 10
Os seguintes recursos e APIs foram adicionados ou atualizados para o Windows 10, versão 1809 (10.0; Build 17763), também conhecido como Atualização de outubro de 2018 do Windows 10.
Novo
- Enumeração DWRITE_FONT_SOURCE_TYPE
- Interface IDWriteFontSet3 e seus métodos
Atualização de abril de 2018 do Windows 10
Os seguintes recursos e APIs foram adicionados ou atualizados para o Windows 10, versão 1803 (10.0; Build 17134), também conhecido como Atualização de abril de 2018 do Windows 10.
Novo
- Interface IDWriteFactory7 e seus métodos
- Interface IDWriteFontCollection3 e seus métodos
- Interface IDWriteFontSet2 e seus métodos
Windows 10 Fall Creators Update
Os seguintes recursos e APIs foram adicionados ou atualizados para o Windows 10, versão 1709 (10.0; Build 16299), também conhecido como Atualização de Outono do Windows 10 para Criadores.
Novo
- Enumeração DWRITE_AUTOMATIC_FONT_AXES
- Enumeração DWRITE_FONT_AXIS_ATTRIBUTES
- Enumeração DWRITE_FONT_AXIS_TAG
- Enumeração DWRITE_FONT_FAMILY_MODEL
- Interface IDWriteFactory6 e seus métodos
- Interface IDWriteFontCollection2 e seus métodos
- Interface IDWriteFontFace5 e seus métodos
- Interface IDWriteFontFaceReference1 e seus métodos
- InterfaceIDWriteFontFallback1 e seus métodos
- Interface IDWriteFontFamily2 e seus métodos
- Interface IDWriteFontList2 e seus métodos
- Interface IDWriteFontResource e seus métodos
- Interface IDWriteFontSet1 e seus métodos
- Interface IDWriteFontSetBuilder2 e seus métodos
- Interface IDWriteTextFormat3 e seus métodos
- Interface IDWriteTextLayout4 e seus métodos
- Macro DWRITE_MAKE_FONT_AXIS_TAG
- Estrutura DWRITE_FONT_AXIS_RANGE
- Estrutura DWRITE_FONT_AXIS_VALUE
Movido
A enumeração DWRITE_GLYPH_IMAGE_FORMATS migrou de dwrite_3.h
para dcommon.h
.
Atualização do Windows 10 para Criadores
Os seguintes recursos e APIs foram adicionados ou atualizados para o Windows 10, versão 1703 (10.0; Build 15063), também conhecido como Atualização do Windows 10 para Criadores.
Suporte expandido à API para fontes de nuvem e conjuntos de fontes personalizados
O Windows 10 incluiu APIs que permitem que os aplicativos acessem facilmente fontes de um serviço de fonte do Windows. Na Atualização do Windows 10 para Criadores, as APIs para fontes remotas são estendidas para permitir acesso fácil a fontes de outras fontes na Web que podem ser acessadas usando HTTP ou HTTPS.
As novas APIs de fonte remota podem ser usadas com serviços Web públicos ou privados. Além disso, elas podem ser usadas para acessar arquivos de fonte OpenType brutos (.ttf, .otf., .ttc, .otc) ou fontes empacotadas em formatos de contêiner WOFF ou WOFF2. As novas APIs são usadas em conjunto com APIs existentes para enfileirar solicitações para baixar dados de fonte remota e para lidar com o processo de download real.
Outras novas APIs facilitam o trabalho dos aplicativos com fontes personalizadas armazenadas no sistema de arquivos local ou carregadas em um buffer de memória.
Para obter mais informações sobre novas APIs para trabalhar com fontes remotas, conjuntos de fontes personalizados ou formatos de contêiner WOFF/WOFF2, consulte o seguinte tópico:
Conjuntos de fontes personalizados
Consulte também os links para tópicos de referência da API fornecidos nesse tópico. O uso de APIs novas e existentes para trabalhar com fontes personalizadas também é ilustrado no exemplo de Conjuntos de Fontes Personalizados do DirectWrite. Esse exemplo ilustra a implementação de código para vários cenários diferentes, incluindo fontes locais em disco, fontes remotas na Web, dados de fonte na memória e fontes em formatos WOFF ou WOFF2 empacotados.
Suporte inicial para Variações de Fonte OpenType
A versão 1.8 da especificação de formato da fonte OpenType introduziu uma nova extensão interessante para o formato conhecido como Variações de Fonte OpenType. O DirectWrite foi atualizado no Atualização do Windows 10 para Criadores para dar suporte a instâncias nomeadas de fontes variáveis. Para obter mais informações, consulte o tópico a seguir:
Atualização de Aniversário do Windows 10
Os seguintes recursos e APIs foram adicionados ou atualizados para o Windows 10, versão 1607 (10.0; Build 14393), também conhecido como Atualização de Aniversário do Windows 10.
Suporte aprimorado para fontes coloridas
A partir da Atualização de Aniversário do Windows 10, o DirectWrite fornece suporte interno para uma variedade maior de formatos de fonte de cores, permitindo que os desenvolvedores usem mais tipos de fontes em seus aplicativos alimentados pelo DirectWrite do que nunca. Isso inclui suporte para:
- A tabela OpenType "COLR", que permite conteúdo de vetor compacto em fontes. (Com suporte desde o Windows 8.1.)
- A tabela OpenType "SVG", que habilita conteúdo SVG em fontes.
- A tabela OpenType "CBDT", que habilita conteúdo de bitmap de cor em fontes.
- A tabela OpenType "sbix", que habilita conteúdo de bitmap de cor em fontes.
O Direct2D, que usa o DirectWrite para renderização de texto, dá suporte a esses formatos de fonte de cor automaticamente quando o sinalizador D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT está habilitado. Para Mais informações, consulte os seguintes tópicos:
Suporte para o Adobe Typekit e outros clientes de serviço de fonte
Alguns serviços de fonte, como o Adobe Typekit, têm utilitários do lado do cliente que permitem que um usuário carregue fontes do serviço e as use em aplicativos diferentes em seu computador Windows. Esses utilitários normalmente funcionam fazendo chamadas no runtime para GDI para carregar fontes adicionais, em vez de instalar permanentemente fontes no sistema. Devido a esse design, em versões anteriores do Windows, as fontes eram utilizáveis em aplicativos baseados em GDI, mas não em aplicativos DirectWrite. A partir da Atualização de Aniversário do Windows 10, as fontes carregadas por esses utilitários também estarão disponíveis no DirectWrite, bem como no GDI.
Fontes carregadas por um utilitário de serviço de fonte são visíveis na coleção de fontes do sistema obtida chamando o método IDWriteFactory::GetSystemFontCollection. Como os serviços de fonte normalmente seguem um modelo de licenciamento por usuário, as fontes carregadas por esses utilitários são gerenciadas por usuário. Como resultado, os aplicativos DirectWrite existentes podem utilizar fontes que os usuários finais obtiveram usando esses serviços, sem quaisquer alterações de código necessárias no aplicativo, fornecendo uma experiência mais perfeita para os usuários.
Suporte a coleções OpenType usando estruturas de tópicos CFF
Os formatos de fonte OpenType e TrueType há muito dão suporte à capacidade de várias fontes serem empacotadas em um único arquivo de fonte, conhecido como "coleção de fontes". A especificação OpenType sempre permitiu que as fontes usem formatos TrueType ou CFF para dados de estrutura de tópicos de glifo. Até recentemente, no entanto, a especificação só permitia coleções nas quais os contornos de glifo usam o formato TrueType. O OpenType versão 1.7 agora permite que coleções usem formatos TrueType ou CFF para dados de estrutura de tópicos de glifo. A partir da Atualização de Aniversário do Windows 10, o DirectWrite dará suporte a coleções OpenType usando dados de estrutura de tópicos CFF.
Windows 10
Integração do serviço de fonte do Windows
A partir do Windows 10, as fontes incluídas no Windows estão disponíveis em um serviço online e podem ser acessadas por meio do DirectWrite em qualquer dispositivo Windows 10. Isso se aplica a todas as edições do Windows 10. Isso permite que os aplicativos exibam conteúdo usando qualquer fonte do Windows, mesmo que a fonte não esteja instalada no momento no dispositivo.
O suporte aos mecanismos de serviço de fonte do DirectWrite foi implementado na estrutura XAML, o que significa que nenhum aplicativo que usa XAML exija alterações de código para aproveitar as vantagens do serviço de fonte. O exemplo de código de fontes para download (XAML) demonstra isso. Os aplicativos que chamam as APIs do DirectWrite diretamente precisarão usar novas APIs para usar os mecanismos de serviço de fonte. Para Mais informações, consulte os seguintes tópicos:
- Método IDWriteFactory3::GetSystemFontCollection
- Interface IDWriteTextLayout3
- Interface IDWriteFontDownloadQueue
- Interface IDWriteFontDownloadListener
O exemplo de código de fontes para download (DirectWrite) ilustra o uso de várias das novas APIs.
APIs do conjunto de fontes
As interfaces de coleção de fontes do DirectWrite fornecem uma exibição para uma coleção de fontes organizadas por famílias de fontes, usando peso, alongamento e estilo como atributos subfamiliares. Internamente, o DirectWrite implementa a interface de coleção de fontes usando uma lista simples de fontes com vários atributos. Essa abordagem é mais flexível, pois pode dar suporte à enumeração de famílias de peso/alongamento/estilo, mas também pode dar suporte à consulta e à filtragem usando outros atributos de fonte também.
No Windows 10, esse mecanismo de manipulação de fontes mais flexível é disponibilizado para aplicativos por meio do IDWriteFontSet e das APIs relacionadas. As APIs do conjunto de fontes podem ser usadas, por exemplo, para criar uma interface personalizada do usuário do seletor de fontes aproveitando as propriedades de fonte personalizadas pelo aplicativo em um conjunto de fontes personalizado.
Para Mais informações, consulte os seguintes tópicos:
- Interface IDWriteFontSet
- Interface IDWriteFontSetBuilder
- Enumeração DWRITE_FONT_PROPERTY_ID
- Método IDWriteFontFactory3::GetSystemFontSet
Novos modos de espaçamento de linha de layout de texto
As interfaces de formato de texto e layout de texto do DirectWrite dão suporte a novos modos de espaçamento de linha. Em versões anteriores, a implementação do layout de texto do DirectWrite permitia espaçamento de linha no qual a altura de cada linha era definida automaticamente com base no item mais alto dentro de uma linha (o modo "padrão") ou espaçamento de linha com todas as linhas definidas como uma altura uniforme determinada pelo aplicativo (o modo "uniforme"). No Windows 10, há suporte para um modo de espaçamento de linha "proporcional" adicional que oferece aos aplicativos mais opções para o comportamento de espaçamento de linha. Para Mais informações, consulte os seguintes tópicos:
- Interface IDWriteTextLayout3
- Método IDWriteTextLayout3::SetLineSpacing
- Estrutura DWRITE_LINE_SPACING
- Enumeração DWRITE_LINE_SPACING_METHOD
- Enumeração DWRITE_FONT_LINE_GAP_USAGE
- Método IDWriteTextLayout3::GetLineMetrics
- Estrutura DWRITE_LINE_METRICS1
O exemplo de código de espaçamento de linha (DirectWrite) ilustra o uso de várias das novas APIs e também fornece uma visualização de todos os diferentes modos de espaçamento de linha que torna muito mais fácil entender as várias opções de espaçamento de linha disponíveis.
Interoperabilidade de GDI
Desde sua introdução, no Windows 7, o DirectWrite tem fornecido um caminho de migração para aplicativos que eram originalmente implementados usando o modelo de fonte, o layout de texto e a renderização da GDI. Isso foi fornecido por meio da interface [[IDWriteGdiInterop]]. No Windows 10, APIs adicionais fornecem recursos adicionais de interoperabilidade de GDI. Para saber mais, consulte as subseções a seguir:
- Interface IDWriteGdiInterop1
Windows 8.1
Como renderizar fontes de cor
A partir do Windows Windows 8.1, o DirectWrite oferece suporte a fontes de cores. O Direct2D, que usa o DirectWrite para renderização de texto, adicionou o valor de enumeração D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT para habilitar esse recurso ao desenhar texto. Para Mais informações, consulte os seguintes tópicos:
- Enumeração D2D1_DRAW_TEXT_OPTIONS
- Método IDWriteFactory2::TranslateColorGlyphRun
Windows 8
Uma nova interface de fábrica, IDWriteFactory1, para criar interfaces adicionais disponíveis.
Propriedades de fonte adicionais, como: intervalos super/subscrito, inclinação de cursor, PANOSE e Unicode.
Melhorias de espaçamento, como: controle o espaçamento de caracteres, pares de kerning herdados e justificativa. Consulte o tópico Justificativa, Kerning e Espaçamento para obter mais informações.
Destinos e parâmetros de renderização aprimorados.
Melhorias na análise de complexidade de texto.
Novas propriedades de script, suporte a novo script (Unicode 6), adições de fallback de fonte, parênteses emparelhados e aumento de bidi.
Aprimoramentos de desempenho do cache de fontes. A partir do Windows 8, o cache de fontes é global e começa quando o computador é inicializado.
Novos modos de renderização.
A partir do Windows 8, o DirectWrite dá suporte a uma série de recursos que ajudam você a criar aplicativos para o mercado mundial.
Aqui estão várias áreas que ajudam você a implementar aplicativos de rich text que podem ser adaptados aos clientes em todo o mundo.
Extensões chinesas, japonesas e coreanas C & D
A cada poucos anos, o Consórcio Unicode lança uma lista padronizada de adições ao bloco Ideógrafo unificado chinês, japonês e coreano. Com a revisão Unicode 6.0, eles lançaram os blocos de extensão C e D. Esses blocos de ideógrafos podem ser encontrados no site do Unicode, em Extensão C e Extensão D.
A partir do Windows 8, o DirectWrite dá suporte aos pontos de código Unicode para esses novos blocos de Ideógrafos CJK padronizados, para que você possa usá-los em aplicativos DirectWrite.
Símbolo de rúpia indiana
Em março de 2005, o governo indiano anunciou uma competição para escolher um símbolo para a moeda indiana de rúpia. Depois de muita concorrência, em 15 de julho de 2010, o governo indiano escolheu o projeto criado por D. Udaya Kumar, e o DirectWrite inclui suporte para o ponto de código Unicode vinculado ao símbolo. Portanto, os aplicativos DirectWrite agora dão suporte a esse símbolo de moeda.
Emoji
O DirectWrite agora dá suporte ao uso de emojis em aplicativos. Versões anteriores do DirectWrite apresentavam uma caixa de glifo ausente se você tentasse renderizar um ideógrafo de emoji. A partir do Windows 8, o DirectWrite dá suporte ao codeblock Unicode associado a emojis, portanto, se o aplicativo usar os pontos de código padrão Unicode para emojis, ele exibirá os glifos apropriados.
Idiomas de Mianmar, Tiffinagh e Hangul Antigo
A partir do Windows 8, o DirectWrite dá suporte ao bloco de pontos de código Unicode que correspondem aos glifos nos idiomas de Mianmar, Tiffinagh e Hangul Antigo, para que você possa criar aplicativos que incluam texto desses três idiomas. Além de dar suporte a esses caracteres, o DirectWrite dá suporte à maneira exclusiva que o Hangul Antigo lida com a quebra de linha.
Novos scripts
A partir do Windows 8, o método GetScriptProperties retorna informações para uma série de novos scripts. Aqui está a lista de scripts compatíveis com o DirectWrite no Windows 8 e posteriores.
- Avestan
- Bamum
- Batak
- Brahmi
- Hieróglifos egípcios
- Aramaico Imperial
- Inscrições Pahlavi
- Inscrições Partas
- Javanês
- Kaithi
- Lisu (Fraser)
- Mandaico
- Meetei Mayek
- Árabe do Sul antigo
- Turco antigo (Orkhon)
- Samaritano
- Tai Tham (Lanna)
- Tai Viet