To use the DirectWrite library, include the dwrite_3.h
header.
#include <dwrite_3.h>
The DirectWrite factory is the main object that creates other DirectWrite objects.
A factory is represented by the IDWriteFactory7
interface.
Microsoft::WRL::ComPtr<IDWriteFactory7> writeFactory;
To create a DirectWrite Factory, call the DWriteCreateFactory
function.
HRESULT hr = DWriteCreateFactory(
DWRITE_FACTORY_TYPE_SHARED,
__uuidof(IDWriteFactory7),
&writeFactory);
if (FAILED(HR))
{
}
An IDWriteTextFormat
object represents the formatting information for a paragraph of text.
To create a text format, call the IDWriteFactory::CreateTextFormat
method on the factory.
An IDWriteTextLayout
object represents the layout for a paragraph of text using a IDWriteTextFormat
object with a specific dimension of the space constraint.
To create a text layout, call the IWriteFactory::CreateTextLayout
method on the factory with an input string, the layout constraints, and a IDWriteTextFormat
.
An application can then render the text using the DrawText
or DrawTextLayout
functions from Direct2D, or by implementing a custom callback function.
When you need to draw the same text multiple times, call the DrawTextLayout
function to create a layout that can be reused.
<aside>
💡 Set the text antialiasing mode to D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE
.
The quality of rendering grayscale text is comparable to ClearType but is much faster.
</aside>