microsoft directwrite что это

Учебник. начало работы с DirectWrite

в этом документе показано, как использовать DirectWrite и Direct2D для создания простого текста, содержащего один формат, а затем текст, содержащий несколько форматов.

Этот учебник содержит следующие компоненты.

Исходный код

Функция Описание
CreateDeviceIndependentResources Создает ресурсы, независимые от устройства, поэтому их можно использовать в любом месте.
дискарддевицеиндепендентресаурцес Освобождает ресурсы, независимые от устройства, после того, как они больше не нужны.
CreateDeviceResources Создает ресурсы, такие как кисти и целевые объекты рендеринга, привязанные к конкретному устройству.
дискарддевицересаурцес Освобождает ресурсы, зависящие от устройства, после того, как они больше не нужны.
DrawD2DContent Использует Direct2D для отображения на экране.
DrawText Рисует текстовую строку с помощью Direct2D.
онресизе Изменяет размер целевого объекта отрисовки Direct2D при изменении размера окна.

вы можете использовать предоставленный образец или выполнить приведенные ниже инструкции, чтобы добавить DirectWrite и Direct2D в собственное приложение Win32. Дополнительные сведения о примере и связанных файлах проекта см. в примере директвритехелловорлд.

Рисование простого текста

в этом разделе показано, как использовать DirectWrite и Direct2D для отрисовки простого текста, имеющего один формат, как показано на следующем снимке экрана.

Для рисования простого текста на экране необходимо четыре компонента:

Интерфейс идвритетекстформат описывает имя, размер, вес, стиль и растяжение гарнитуры, используемые для форматирования текста, а также сведения о языковых стандартах. Идвритетекстформат также определяет методы для установки и получения следующих свойств:

часть 1. объявление ресурсов DirectWrite и Direct2D.

В файле заголовка класса (Симплетекст. h) объявите указатели на идвритефактори и идвритетекстформат интерфейсы как закрытые члены.

Объявите элементы для хранения текстовой строки для отображения и длины строки.

Часть 2. создание независимых ресурсов устройства.

Direct2D предоставляет два типа ресурсов: ресурсы, зависящие от устройства, и ресурсы, независимые от устройств. Ресурсы, зависящие от устройства, связаны с устройством отрисовки и больше не работают, если это устройство удалено. С другой стороны, независимые от устройства ресурсы могут быть последними в области приложения.

DirectWrite ресурсы не зависят от устройства.

В этом разделе вы создадите независимые от устройства ресурсы, используемые приложением. Эти ресурсы должны быть освобождены с помощью вызова метода Release интерфейса.

Инициализируйте текстовую строку и сохраняет ее длину.

В этой части были инициализированы независимые от устройства ресурсы, используемые приложением. В следующей части вы инициализируем ресурсы, зависящие от устройства.

Часть 3. Создание ресурсов Device-Dependent.

Цель отрисовки — это объект Direct2D, который создает ресурсы рисования и визуализирует команды рисования на устройстве отрисовки. ID2D1HwndRenderTarget — это целевой объект отрисовки, который готовится к просмотру в HWND.

Одним из ресурсов рисования, которые может создать целевой объект рендеринга, является кисть для рисования контуров, заливок и текста. ID2D1SolidColorBrush закрашивается сплошным цветом.

Интерфейсы ID2D1HwndRenderTarget и ID2D1SolidColorBrush привязываются к устройству отрисовки, когда они создаются и должны быть освобождены и созданы повторно, если устройство станет недействительным.

В методе Симплетекст:: Креатедевицересаурцес проверьте, имеет ли указатель целевого объекта прорисовки значение NULL. Если это так, извлеките размер области рендеринга и создайте ID2D1HwndRenderTarget этого размера. Используйте ID2D1HwndRenderTarget для создания ID2D1SolidColorBrush.

В методе Симплетекст::D Искарддевицересаурцес Освободите и кисть, и целевой объект прорисовки.

Теперь, когда вы создали целевой объект отрисовки и кисть, их можно использовать для визуализации текста.

Часть 4. Рисование текста с помощью метода Direct2D DrawText.

В методе Симплетекст::D Равтекст класса определите область для макета текста, извлекая размеры области отрисовки и создав прямоугольник Direct2D с теми же размерами.

Используйте метод ID2D1RenderTarget::D равтекст и объект идвритетекстформат для отрисовки текста на экране. Метод ID2D1RenderTarget::D равтекст принимает следующие параметры:

Часть 5. Отрисовка содержимого окна с помощью Direct2D

Чтобы отобразить содержимое окна с помощью Direct2D при получении сообщения Paint, выполните следующие действия.

Класс Симплетекст реализован в Симплетекст. h и Симплетекст. cpp.

Рисование текста с несколькими форматами.

в этом разделе показано, как использовать DirectWrite и Direct2D для отрисовки текста с несколькими форматами, как показано на следующем снимке экрана.

Код для этого раздела реализуется как класс Мултиформаттедтекст в примере двритехелловорлд. Он основан на шагах из предыдущего раздела.

Часть 1. Создание интерфейса Идвритетекстлайаут.

Объявите указатель на интерфейс идвритетекстлайаут в качестве члена класса мултиформаттедтекст.

Часть 2. Применение форматирования с помощью Идвритетекстлайаут.

Часть 3. Добавление типографских функций с помощью Идвритетипографи.

Задайте макет текста для использования оформления всей строки путем объявления переменной _ _ диапазона текста дврите и вызова метода идвритетекстлайаут:: сеттипографи и передачи текстового диапазона.

Задайте новую ширину и высоту для объекта макета текста в методе Мултиформаттедтекст:: Онресизе.

Часть 4. Рисование текста с помощью метода Direct2D Дравтекстлайаут.

Делкаре переменную D2D1 _ _ 2F и установите ее в верхнюю левую точку окна.

Класс Мултиформаттедтекст реализован в Мултиформаттедтекст. h и Мултиформаттедтекст. cpp.

Источник

Отрисовка текста с помощью Direct2D и DirectWrite

в отличие от других интерфейсов api, таких как GDI, GDI+ или WPF, Direct2D взаимодействует с другим API, DirectWrite, для обработки и отрисовки текста. В этом разделе описываются преимущества и взаимодействие этих отдельных компонентов.

В этом разделе содержатся следующие подразделы.

Direct2D включает добавочное внедрение

Перемещение приложения из одного графического API в другой может быть сложным или ненужным по различным причинам. Это может быть вызвано тем, что необходимо поддерживать подключаемые модули, которые по-прежнему используют старые интерфейсы, так как само приложение слишком велико для переноса на новый API в одном выпуске или потому, что более старый API достаточно хорошо работает для других частей приложения.

поскольку Direct2D и DirectWrite реализуются как отдельные компоненты, можно обновить всю систему двухмерной графики или просто текстовую часть. например, можно обновить приложение так, чтобы оно использовало DirectWrite для текста, но по-прежнему использовало GDI или GDI+ для отрисовки.

Текстовые службы и отрисовка текста

По мере развития приложений требования к обработке текста были все еще сложны. В первую очередь, текст обычно ограничен статическим выходным ИНТЕРФЕЙСом, а текст был отображен в хорошо определенном поле, например на кнопке. По мере того, как приложения начали быть доступны на растущем количестве языков, этот подход стал труднее, так как ширина и высота переведенного текста могут значительно различаться в разных языках. Для адаптации приложения начали динамически размещать свой пользовательский интерфейс в зависимости от фактического размера отображаемого текста, а не наоборот.

Макет может расположить глифы в идеале на основе их ширины (как в WPF), или же можно привязать глифы к ближайшим позициям в пикселях (как в GDI ).

Интерфейс макета текста отделен от API отрисовки, используемого приложением, как показано на следующей схеме:

следуя подобным разделениям, функции для работы с текстом (например, перечисление и управление шрифтами, анализ глифов и т. д.) обрабатываются DirectWrite вместо Direct2D. DirectWrite объекты принимаются непосредственно Direct2D. чтобы помочь существующим приложениям GDI воспользоваться преимуществами DirectWrite, он предоставляет интерфейс метода идвритегдиинтероп с методами для выполнения следующих задач:

Глифы и текст

версия DirectWrite сохраняет исходный план, режим измерения и параметры запуска глифа и включает дополнительные параметры.

Эта версия содержит больше параметров, которые полезны при реализации пользовательского модуля подготовки текста. Последний параметр используется для реализованных приложением пользовательских эффектов рисования. (Дополнительные сведения о влиянии на рисование клиента см. в разделе Добавление клиентских эффектов рисования в макет текста.

DirectWrite и Direct2D

Direct2D предоставляет службы визуализации на уровне глифов через DrawGlyphRun. Однако для этого требуется, чтобы приложение реализовало сведения о отрисовке, что, по сути, повторно создает функциональные возможности API DrawText из GDI.

Использование текста приложением обычно начинается с простого: пошаговое нажатие кнопки » ОК » или «Отмена» на кнопке с фиксированным макетом. Однако со временем оно станет более сложным, так как используется Международная связь и добавляются другие компоненты. в конечном итоге многие приложения должны использовать объекты макета текста DirectWrite и реализовать модуль подготовки текста.

Таким образом, Direct2D предоставляет многоуровневые API, которые позволяют приложению запускаться просто и более сложным, не отвлекая и не отменяя рабочий код. Упрощенное представление показано на следующей схеме:

DrawText

DrawText — это самый простой из интерфейсов API для использования. Он принимает строку в Юникоде, кисть переднего плана, один объект форматирования и прямоугольник назначения. Она будет размещать и визуализировать всю строку в пределах прямоугольника макета и при необходимости обрезать ее. Это полезно при помещении простого фрагмента текста в элемент пользовательского интерфейса с фиксированной разметкой.

дравтекстлайаут

DrawGlyphRun

Пример реализации пользовательского модуля подготовки отчетов см. в разделе Подготовка к просмотру с помощью пользовательского текстового модуля подготовки отчетов.

Рендеринг глифов

Это позволяет приложению получать расширенные функции отрисовки текста, например следующие:

Для эффективной поддержки аппаратного ускорения Direct2D использует слегка отличающееся приближение к гамме-коррекции, именуемое корректировкой альфа-канала. Это не требует от Direct2D проверки цветового пикселя целевого объекта прорисовки при отрисовке текста.

Заключение

в этом разделе объясняются различия и сходства между Direct2D и DirectWrite и архитектурным мотивацией для предоставления их в виде отдельных интерфейсов api для совместной разработки.

Источник

Введение в DirectWrite

Люди взаимодействуют с текстом все время в повседневной жизни. Это основной способ, с помощью которого люди могут использовать увеличивающийся объем информации. В прошлом он использовался для печати содержимого, в первую очередь документы, газеты, книги и т. д. все чаще это интернет-содержимое на Windows компьютере. обычно Windows пользователь тратит много времени на чтение с экрана компьютера. Они могут работать в Интернете, проверять электронную почту, создавать отчеты, заполнять электронную таблицу или писать программное обеспечение, но что на самом деле выполняется чтение. несмотря на то, что текст и шрифты перейти почти каждую часть взаимодействия с пользователем в Windows, для большинства пользователей чтение с экрана не так удобно, как чтение напечатанных данных.

для разработчиков Windows приложений написание кода обработки текста является сложной задачей из-за повышенных требований к повышению удобочитаемости, сложному форматированию и применению элементов управления макета, а также поддержке нескольких языков, которые приложение должно отобразить. Даже основная система обработки текста должна разрешать текстовые вводы, макеты, отображение, редактирование, копирование и вставлять. Windows пользователи обычно предполагают больше, чем эти основные функции, и требуют даже простых редакторов для поддержки нескольких шрифтов, различных стилей абзацев, внедренных изображений, проверки орфографии и других функций. Современная модель пользовательского интерфейса также больше не ограничена одним форматом, обычным текстом, но должна обеспечить лучшую работу с богатыми шрифтами и макетами текста.

в этой статье представлены общие сведения о том, как DirectWrite позволяет Windowsным приложениям расширять возможности текста для пользовательского интерфейса и документов.

Улучшение текстового интерфейса

современные Windows приложения имеют сложные требования к тексту в пользовательском интерфейсе и документах. К ним относится более удобочитаемость, поддержка большого спектра языков и сценариев и высокая производительность отрисовки. Кроме того, для большинства существующих приложений требуется способ переноса существующих вложений в базу кода WindowsWin32.

DirectWrite предоставляет следующие три функции, позволяющие Windows разработчикам приложений улучшать текст в своих приложениях: независимость от системы отрисовки, типографская типография и несколько уровней функциональности.

Независимость от Rendering-System

DirectWrite не зависит от какой-либо конкретной графической технологии. Приложения могут использовать технологию отрисовки, которая лучше всего подходит для их нужд. Это дает приложениям возможность по-прежнему выполнять визуализацию некоторых частей приложения через GDI и другие компоненты с помощью Direct3D или Direct2D. на самом деле, приложение может выбрать визуализацию DirectWrite с помощью собственного стека отрисовки.

High-Quality оформления

DirectWrite использует преимущества технологии шрифтов OpenType для обеспечения высокого качества типографии в приложении Windows. система шрифтов DirectWrite предоставляет службы для работы с перечислением шрифтов, откатом шрифтов и кэшированием шрифтов, которые необходимы приложениям для обработки шрифтов.

Поддержка расширенных типографских функций

Поддержка международного текста

В настоящее время поддерживаются следующие скрипты.

Несколько уровней функциональности

DirectWrite предоставляет многоуровневые уровни функциональности, каждый из которых тесно взаимодействует со следующим. Структура API предоставляет разработчикам приложений свободу и гибкость при внедрении отдельных слоев в зависимости от их потребностей и расписания. На следующей схеме показана связь между этими слоями.

API макета текста предоставляет функции высшего уровня, доступные в DirectWrite. Она предоставляет службам приложения возможность измерять, отображать и взаимодействовать с форматированными текстовыми строками. Этот текстовый API можно использовать в приложениях, которые в настоящее время используют Win32’s DrawText для создания современного пользовательского интерфейса с форматированным текстом.

Приложения с большим объемом текста, реализующие собственный обработчик макета, могут использовать следующий слой ниже: обработчик скриптов. Обработчик скриптов разбивает фрагмент текста на блоки сценариев и обрабатывает сопоставление между представлениями Юникода с соответствующим представлением глифа в шрифте, чтобы текст скрипта правильно отображался на правильном языке. Система макета, используемая слоем API макета текста, строится на основе шрифта и системы обработки сценариев.

Уровень визуализации глифов — это самый нижний уровень функциональности, обеспечивающий функции визуализации глифов для приложений, реализующих собственный обработчик макетов текста. слой рендеринга глифов также полезен для приложений, реализующих пользовательский модуль подготовки отчетов для изменения поведения рисования глифов с помощью функции обратного вызова в DirectWrite API форматирования текста.

система шрифтов DirectWrite доступна для всех функциональных уровней DirectWrite и позволяет приложению получать доступ к сведениям о шрифтах и глифах. Он предназначен для работы с общими технологиями шрифтов и форматов данных. модель шрифтов DirectWrite соответствует стандартной типографской методике поддержки любого количества весов, стилей и растянутости в одном семействе шрифтов. Эта модель, та же самая модель, за которой следуют WPF и CSS, указывает, что шрифты, которые отличаются только по весу (полужирный, светло-и т. д.), стиль (вертикальный, курсив или наклонный) или растяжение (узкие, сжатые, широкие и т. д.) считаются членами одного семейства шрифтов.

Улучшенная визуализация текста с помощью технологии ClearType

текст в DirectWrite отображается с помощью технологии Microsoft ClearType, что повышает четкость и удобочитаемость текста. Технология ClearType использует преимущества того факта, что современные ЖК-дисплеи имеют полосы RGB для каждого пикселя, который можно контролировать по отдельности. DirectWrite использует последние улучшения технологии ClearType, впервые включенные в Windows Vista с Windows Presentation Foundation, что позволяет ему оценивать не только отдельные буквы, но и интервалы между буквами. До этих улучшений ClearType текст с размером «10 или 12 точек» был сложен для отображения: можно поместить 1 пиксель между буквами, которые часто слишком маленькие, или 2 пиксела, что часто бывает слишком много. Использование дополнительного разрешения в подпикселях дает нам дробные промежутки, что улучшает однородность и симметрию всей страницы.

На следующих двух иллюстрациях показано, как могут начинаться глифы на любой границе области во время использования позиционирования в пикселах.

Следующая иллюстрация отображается с помощью версии GDI визуализатора ClearType, который не применяет позиционирование в пикселях.

следующая иллюстрация отображается с использованием DirectWrite версии визуализатора ClearType, которая использует позиционирование в пикселях.

Обратите внимание, что пробелы между буквами h и n являются более четными на втором изображении, а буква o больше, чем буква n, больше, даже с буквой l. Также обратите внимание на то, что области буквы l являются более естественными.

Положение ClearType в подпикселях предлагает наиболее точные пробелы на экране, особенно небольшие размеры, в которых разница между подпикселем и целым пикселем представляет значительную долю ширины глифа. Он позволяет измерять текст в идеальном пространстве разрешения и визуализировать его естественное расположение на ЖК-полосе цветов с детализацией по подпикселям. Текст, измеряемый и визуализированный с помощью этой технологии, определяется по определению, не зависит от разрешения, что означает, что точно такой же макет текста достигается в пределах различных способов разрешения экрана.

В отличие от любого из типов отрисовки с помощью технологии GDI, технология ClearType обеспечивает наиболее точную ширину символов.

API текстовой строки применяет отрисовку текста в виде вложенных пикселов по умолчанию, что означает, что она измеряет текст в идеальном разрешении независимо от текущего разрешения экрана и выдает результат позиционирования глифов на основе действительно масштабируемых ширины и смещений для глифов.

для больших объемов текста DirectWrite также позволяет использовать сглаживание вдоль оси y, чтобы сделать края более гладкими и отрисовывать письма как предназначенные для работы в конструкторе шрифтов. На следующем рисунке показано сглаживание по оси y.

хотя DirectWrite текст размещается и визуализируется с помощью по умолчанию с применением технологии ClearType, доступны другие параметры отрисовки. Многие существующие приложения используют GDI для отрисовки большей части своего пользовательского интерфейса, а некоторые приложения используют элементы управления для редактирования системы, которые продолжают использовать GDI для отрисовки текста. при добавлении текста DirectWrite в эти приложения, возможно, придется пожертвовать улучшением возможностей чтения, обеспечиваемых технологиями ClearType, чтобы текст получил единообразное представление в приложении.

для удовлетворения этих требований DirectWrite также поддерживает следующие параметры подготовки к просмотру:

каждый из этих режимов подготовки можно настроить с помощью API DirectWrite, а также с помощью нового тюнера «Windows 7 входящих» ClearType.

начиная с Windows 8 в большинстве случаев следует использовать сглаживание текста в оттенках серого. Этот процесс описан в следующем разделе.

Поддержка естественного макета

Естественное расположение не зависит от разрешения, поэтому пробелы в символах не меняются при изменении масштаба или в зависимости от DPI на дисплее. Дополнительное преимущество заключается в том, что для создания шрифта используется параметр «промежуток». естественная структура становится возможной благодаря поддержке естественной отрисовки DirectWrite, что означает, что отдельные глифы можно разместить в долях пикселя.

Хотя естественное расположение используется по умолчанию, некоторые приложения должны визуализировать текст с тем же отступом и внешним видом, что и GDI. для таких приложений DirectWrite предоставляет классический режим gdi и режимы энергоестественного измерения gdi и соответствующие режимы рендеринга.

Любой из приведенных выше режимов рендеринга можно сочетать с любым из двух режимов сглаживания: ClearType или градации серого. Сглаживание ClearType навязывает более высокое разрешение, по отдельности управляя красным, зеленым и синим значениями цвета каждого пикселя. Сглаживание в оттенках серого рассчитывает только одно значение (или альфа) для каждого пикселя. по умолчанию используется технология ClearType, но сглаживание оттенков серого рекомендуется для Windows приложений магазина, поскольку оно работает быстрее и совместимо со стандартным сглаживанием, в то же время обеспечивая высокую удобочитаемость.

Обзор API

интерфейс идвритефактори является отправной точкой для использования функциональных возможностей DirectWrite. Фабрика — это корневой объект, который создает набор объектов, которые можно использовать вместе.

Операция форматирования и макета является необходимым условием для операций, так как текст необходимо правильно отформатировать и определить в соответствии с заданным набором ограничений, прежде чем он может быть нарисован или проверен на попадание. Для этой цели можно создать два ключевых объекта с идвритефактори : идвритетекстформат и идвритетекстлайаут. Объект идвритетекстформат представляет сведения о форматировании для абзаца текста. Функция идвритефактори:: креатетекстлайаут принимает входную строку, связанные с ней ограничения, такие как размер заполняемого пространства, и объект идвритетекстформат и помещает полностью проанализированный и отформатированный результат в идвритетекстлайаут для использования в последующих операциях.

Форматирование и Рисование «Hello World» с помощью DirectWrite

Доступ к системе шрифтов

помимо указания имени семейства шрифтов для текстовой строки с помощью интерфейса идвритетекстформат в приведенном выше примере, DirectWrite предоставляет приложениям больший контроль над выбором шрифтов через перечисление шрифтов и возможность создания пользовательской коллекции шрифтов на основе внедренных шрифтов документа.

Идвритефонтфаце — это еще один объект, который представляет шрифт и предоставляет полный набор метрик для шрифта. Идвритефонтфаце можно создать непосредственно из имени шрифта. приложению не нужно получать коллекцию шрифтов для доступа к нему. это полезно для приложения макета текста, такого как Microsoft Word, которым необходимо запрашивать сведения о конкретном шрифте.

На следующей схеме показана связь между этими объектами.

идвритефонтфаце

Самые распространенные приложения не будут использовать эти API напрямую, а вместо этого будут использовать идвритефонт или указать имя семейства шрифтов напрямую.

В следующей таблице приведена сводка сценариев использования для двух объектов.

Категория идвритефонт идвритефонтфаце
Интерфейсы API для поддержки взаимодействия с пользователем, таких как пользовательский интерфейс для выбора шрифта: описание и другие информационные API Да Нет
Интерфейсы API для поддержки сопоставления шрифтов: семейство, стиль, вес, растяжение, покрытие символов Да Нет
API DrawText Да Нет
API, используемые для отрисовки Нет Да
API, используемые для макета текста: метрики глифов и т. д. Нет Да
Интерфейсы API для элементов управления ИП и текста: метрики на уровне шрифта Да Да

Ниже приведен пример приложения, которое перечисляет шрифты в коллекции системных шрифтов.

Отрисовка текста

интерфейсы api отрисовки текста позволяют отображать глифы в DirectWriteном шрифте на поверхности Direct2D или в независимом от устройства GDI, а также преобразовывать их в кривые или точечные рисунки. визуализация ClearType в DirectWrite поддерживает позиционирование в подпикселях с повышенной четкостью и контрастностью по сравнению с предыдущими реализациями в Windows. DirectWrite также поддерживает черно-белый текст с псевдонимами для поддержки сценариев, включающих восточно-азиатские шрифты с внедренными точечными рисунками или когда пользователь отключил сглаживание шрифтов любого типа.

Приложения могут использовать DrawGlyphRun API Direct2D для обеспечения аппаратного ускорения отрисовки текста с помощью GPU. Аппаратное ускорение влияет на все фазы конвейера отрисовки текста — от слияния глифов до глифов и фильтрации растрового изображения, чтобы применить алгоритм смешивания ClearType к окончательно отображаемым выходным данным. Это рекомендуемый API для получения наилучшей производительности отрисовки.

Приложения могут использовать метод идвритебитмапрендертаржет::D равглифрун для выполнения программного отображения выполнения глифов до точечного рисунка 32 бит/с. Объект идвритебитмапрендертаржет инкапсулирует растровое изображение и контекст устройства памяти, который можно использовать для отрисовки глифов. Этот API полезен, если вы хотите остаться в GDI, так как у вас есть существующая база кода, отображаемая в GDI.

если у вас есть приложение с существующим кодом макета текста, использующим GDI, и вы хотите сохранить существующий код макета, но использовать DirectWrite только для последнего шага отрисовки глифов, идвритегдиинтероп:: креатефонтфацефромхдк предоставляет мост между двумя api. Перед вызовом этой функции приложение будет использовать функцию идвритегдиинтероп:: креатефонтфацефромхдк для получения ссылки Font-Face из контекста устройства.

Пользовательские режимы отрисовки

Приложения, которым требуется больший контроль, могут использовать идвритефактори:: креатекустомрендерингпарамс для реализации различных параметров отрисовки. Эта функция также может использоваться для установки гаммы, геометрии в пикселях и улучшенной контрастности.

Ниже приведены различные доступные параметры отрисовки.

Сглаживание в дочерних точках

Приложение задает для параметра рендерингмоде значение дврите _ режима рендеринга _ _ естественное, чтобы указать отрисовку с сглаживанием только в горизонтальном измерении.

Сглаживание для дочерних точек в горизонтальных и вертикальных измерениях.

Приложение задает для параметра рендерингмоде значение дврите _ режима рендеринга _ _ Natural _ симметрично, чтобы указать отрисовку с сглаживанием как по горизонтали, так и по вертикали. Таким образом, кривые и диагональные линии выглядят более гладко за счет некоторого мягкости и обычно используются с размерами выше 16 ппем.

Текст с псевдонимом

Текст в градациях серого

Приложение задает для параметра пикселжеометри значение дврите _ пиксельной _ геометрии _ Flat, чтобы указать текст в градациях серого.

Совместимый с GDI-ширина (включая Восточно-азиатское внедренное изображение)

Приложение задает для параметра рендерингмоде значение дврите _ режима рендеринга _ _ _ классическая, чтобы задать сглаживание, совместимое с GDI.

Естественная толщина GDI

Приложение задает для параметра рендерингмоде значение дврите _ режима отрисовки _ _ GDI _ Natural, чтобы задать совместимое сглаживание GDI.

Взаимодействие GDI

Интерфейс идвритегдиинтероп обеспечивает взаимодействие с GDI. это позволяет приложениям продолжать существующие инвестиции в базовые модули кода GDI и выборочно использовать DirectWrite для отрисовки или размещения.

Ниже приведены API-интерфейсы, которые позволяют приложению переходить на систему шрифтов GDI или из нее:

Инициализирует структуру LOGFONT на основе свойств, совместимых с GDI, для указанного идвритефонт.

Инициализирует структуру LOGFONT на основе свойств, совместимых с GDI, для указанного идвритефонтфаце.

Заключение

Улучшение возможностей чтения — это отличная ценность для пользователей, будь то экран или на бумаге. DirectWrite обеспечивает простоту использования и многоуровневую модель программирования для разработчиков приложений, чтобы улучшить взаимодействие с текстом для своих Windows приложений. приложения могут использовать DirectWrite для отображения форматированного текста для пользовательского интерфейса и документов с помощью API макета. в более сложных сценариях приложение может работать непосредственно с глифами, получить доступ к шрифтам и т. д., а также использовать возможности DirectWrite для предоставления высокого качества типографского оформления.

возможности взаимодействия DirectWrite позволяют разработчикам приложений переносить существующие базы кода Win32 и внедрять DirectWrite выборочно в свои приложения.

Источник

Читайте также:  entity framework что это
Сказочный портал