DirectWrite の紹介更新日: 2009 年 4 月 28 日 ダウンロードPDC08_Introducing_DirectWrite_JPN.docx (Word 形式、277 KB) 目次:はじめに テキスト表示品質の向上 レンダリング システムからの独立 高品質の文字体裁
Sriram Subramanian 対象:Windows® 7 要約:DirectWrite は、DirectX ファミリに新しく追加された API です。DirectWrite では、Win32 アプリケーションのテキスト表示品質を向上させる、OpenType フォントおよび ClearType レンダリングが使用されます。このホワイト ペーパーでは、DirectWrite API を使用して GDI アプリケーションや DirectX アプリケーションでテキストを表示する方法について説明します。 法的通知:このドキュメントは暫定版であり、このソフトウェアの最終的な製品版の発売時に実質的に変更されることがあります。 1. はじめに日常生活におけるコミュニケーションでは、常にテキストを使用しています。テキストは、増加の一途をたどる情報を消費するための主な方法です。これまで、テキストは、ドキュメント、新聞、書籍などの印刷物で使用されるものでしたが、次第に、Microsoft® Windows® PC 上のオンライン コンテンツに使用されるようになってきています。一般的な Windows ユーザーは、コンピューターの画面上に表示されたデータを読み取ることに多くの時間を費やしています。ネット サーフィン、電子メールの流し読み、レポートの構成、スプレッドシートへの記入、ソフトウェアの作成など、さまざまな作業を行っていますが、実際に行っているのは「読むこと」です。テキストやフォントは Windows のユーザー エクスペリエンスのほぼすべての部分に浸透していますが、ほとんどのユーザーにとって、画面上に表示されたものを読むことは、印刷物を読むことほど楽しいことではありません。 Windows アプリケーションの開発者にとって、テキストを処理するコードの作成は困難な作業です。というのも、読みやすくするための要件の増加、複雑な書式やレイアウトの制御、アプリケーションで表示する必要がある複数の言語に対するサポートに対応しなければならないからです。非常に基本的なテキスト処理システムでも、テキストの入力、レイアウト、表示、編集、およびコピーと貼り付けを行えるようにする必要があります。一般的に、Windows ユーザーは、このような基本的な機能以上を期待するため、単純なエディターであっても、複数のフォント、さまざまな段落スタイル、埋め込み画像、スペル チェックなどの機能をサポートする必要があります。また、最近の UI のデザインは、単一の書式とプレーン テキストに限定されることはなくなり、豊富なフォントやテキスト レイアウトを使用してより優れたエクスペリエンスを実現する必要もあります。 このドキュメントでは、DirectWrite によって、Windows アプリケーションの UI やドキュメントのテキスト表示品質がどのように向上するかについて説明します。 ページのトップへ 2. テキスト表示品質の向上最近の Windows アプリケーションでは、その UI やドキュメント内のテキストに関する要件が複雑になっています。こうした要件には、読みやすさの向上、さまざまな言語やスクリプトのサポート、高度なレンダリング パフォーマンスなどがあります。さらに、ほとんどの既存のアプリケーションでは、Win32® のコード ベースへの既存の投資を今後も利用する方法を必要としています。 DirectWrite には、Windows アプリケーションの開発者がアプリケーション内のテキスト表示品質を向上できるようにする機能が 3 つ用意されています。この機能とは、レンダリング システムからの独立、高品質の文字体裁、および複数のレイヤーで構成された機能です。 a. レンダリング システムからの独立DirectWrite は、特定のグラフィックス テクノロジには依存していないので、アプリケーションでは、そのニーズに最も適したレンダリング テクノロジを自由に使用できます。これにより、アプリケーションの一部は引き続き GDI でレンダリングし、その他の部分は Direct3D® や Direct2D でレンダリングすることができます。実際、アプリケーションでは、専用のレンダリング スタックを介して DirectWrite をレンダリングすることもできます。 ページのトップへ b. 高品質の文字体裁DirectWrite では、OpenType® フォント テクノロジの進化を活かして、Windows アプリケーション内で高品質の文字体裁を実現することができます。DirectWrite フォント システムでは、アプリケーションでフォントの処理に必要となる、フォントの列挙、代替、キャッシュを処理するためのサービスが提供されています。 DirectWrite で提供されている OpenType のサポートにより、開発者は、高度な文字体裁機能と各国対応テキストのサポートをアプリケーションに追加できます。 高度な文字体裁機能のサポートDirectWrite を使用すると、アプリケーション開発者は、Win Forms や GDI では使用できなかった、OpenType フォントの機能のロックを解除できます。DirectWrite の IDWriteTypography オブジェクトでは、スタイル上の代替文字や巻きひげ文字など、OpenType フォントの高度な機能の多くを公開しています。Windows SDK には、Pericles フォントや Pescadero フォントなど、機能が充実した OpenType フォントのサンプル一式が用意されています。OpenType フォントの機能の詳細については、「OpenType フォントの機能」を参照してください。 各国語対応テキストのサポートDirectWrite では、OpenType フォントを活用して、各国語対応テキストの幅広いサポートが可能になりました。サロゲート、BIDI、改行、UVS などの Unicode 機能がサポートされます。言語に合わせたスクリプトの記述、数字置換、グリフの形成により、スクリプト内のテキストのレイアウトとレンダリングは適切な状態になります。 現在サポートされているスクリプトは次のとおりです。 注: * が付いたスクリプトについては、既定のシステム フォントがありません。アプリケーションでは、このようなスクリプトをサポートするフォントをインストールする必要があります。
ページのトップへ c. 複数のレイヤーで構成された機能DirectWrite には、複数のレイヤーで構成された機能が用意されており、各レイヤーでは隣のレイヤーとシームレスに対話します。API の仕様により、アプリケーションでは、ニーズやスケジュールに応じて、自由かつ柔軟に、個々のレイヤーを採用することができます。こうしたレイヤーの関係を次の図に示します。
テキスト レイアウト API には、DirectWrite で提供している最高レベルの機能が用意されています。また、この API では、アプリケーションが多彩な書式のテキスト文字列の測定、表示、操作を行うためのサービスが提供されます。このテキスト レイアウト API は、現在 Win32 の DrawText によって、多彩な書式が設定されたテキストを使用した最新の UI を実現しているアプリケーションで使用できます。 独自のレイアウト エンジンを実装し、テキストを集中的に使用するアプリケーションでは、下位レイヤー (スクリプト プロセッサ) を使用することができます。スクリプト プロセッサでは、テキスト ブロックがスクリプト ブロックに分解され、スクリプトのテキストを適切な言語で正しく表示できるように、Unicode 表現からフォントの適切なグリフ表現へのマッピングが処理されます。テキスト レイアウト API レイヤーで使用されるレイアウト システムは、フォントとスクリプトを処理するシステムに基づいて構築されています。 グリフ レンダリング層は、機能の最下位のレイヤーで、独自のテキスト レイアウト エンジンを実装するアプリケーションにグリフ レンダリング機能を提供します。グリフ レンダリング層は、カスタム レンダラーを実装して、DirectWrite のテキスト書式設定 API のコールバック関数でグリフ描画動作を変更するアプリケーションにも役立ちます。 DirectWrite フォント システムは、DirectWrite の全機能レイヤーで使用できるため、アプリケーションではフォントやグリフの情報にアクセスできるようになります。このシステムは、一般的なフォント テクノロジやデータ形式を処理するよう設計されています。DirectWrite フォント モデルは、同じフォント ファミリ内のさまざまな太さ、スタイル、伸縮をサポートする、一般的な文字体裁の慣例に従っています。このモデル (WPF および CSS でも採用されています) では、太さ (太い、細いなど)、スタイル (標準、斜体など)、または伸縮 (狭い、縮小、広いなど) だけが異なるフォントは、同じフォント ファミリのメンバーであると見なされます。 ページのトップへ 3. ClearType によるテキスト レンダリングの向上画面上での読みやすさの向上は、すべての Windows アプリケーションにとって重要な要件です。認知心理学の調査から、処理速度を上げるためには、すべての文字を正確に認識できる必要があるだけでなく、文字の間隔も重要であることが判明しました。均整がとれていない文字や単語は、見苦しいと認識され、読みやすさが低下します (Microsoft Advanced Reading Technologies グループに所属する Kevin Larson は、IEEE Spectrum で発行された、「The Technology of Text」(英語) という表題の興味深い記事を執筆しました)。 DirectWrite のテキストは、Microsoft® ClearType® を使用してレンダリングされるので、テキストのわかりやすさと読みやすさが向上します。ClearType では、最新の LCD ディスプレイで、各ピクセルで個別に制御できる RGB ストライプが採用されているという点が活用されます。DirectWrite では、個々の文字だけでなく、文字間隔も評価できる ClearType の最新の拡張機能を使用しています (ClearType は、Windows Presentation Foundation 搭載の Windows Vista® に最初に同梱されました)。この ClearType の拡張機能が開発されるまで、"読み取り" サイズが 10 ポイントまたは 12 ポイントのテキストを表示することは困難でした。設定可能な文字間隔は、1 ピクセルか 2 ピクセルのいずれかで、前者の場合は小さすぎて、後者の場合は大きすぎるということが往々にしてありました。サブピクセルの解像度が上がると、間隔を小数値で指定できるようになるため、ページ全体の均一性や均整が向上します。 次の 2 つの例では、サブピクセル ポジショニングを使用した場合にサブピクセルの境界でどのようにグリフを開始できるかを示しています。 上記の例は、サブピクセル ポジショニングを使用していない、GDI バージョンの ClearType レンダラーを使用してレンダリングされたものです。 次の例は、サブピクセル ポジショニングを使用している、DirectWrite バージョンの ClearType レンダラーを使用してレンダリングされたものです。 2 つ目の画像では、文字 e と l の間隔が 1 つ目の画像より均等になっていることに注目してください。また、文字 l の縦線もがより自然になっています。 ClearType のサブピクセル ポジショニングにより、画面上の文字間隔は非常に正確になります。特に、サブピクセルとピクセルの差がグリフの幅に占める割合が大きい、小さいサイズの場合にはよくわかります。サブピクセル ポジショニングにより、テキストを理想的な解像度で測定し、LCD のカラー ストライプのサブピクセルの粒度で自然な位置にレンダリングできます。このテクノロジを使用して測定およびレンダリングされたテキストは、定義上、解像度に依存しません。つまり、まったく同じレイアウトのテキストをさまざまなディスプレイ解像度で実現できます。 GDI の ClearType レンダリングのどちらの特色とも異なり、サブピクセルの ClearType では、文字の幅が非常に正確になります。 テキスト レイアウト API では、既定で、サブピクセルによるテキスト レンダリングが採用されています。つまり、この API は、現在のディスプレイの解像度に関係なく理想的な解像度でテキストを測定し、サイズ変更されたグリフの送り幅と位置指定オフセットに基づいて、グリフの位置を生成します。
大きなサイズのテキストの場合、DirectWrite を使用すると、Y 軸に沿ったアンチエイリアス表示により、縁をより滑らかにして、フォント デザイナーが意図したとおりに文字をレンダリングできます。次のスクリーンショットでは、Y 軸方向のアンチエイリアス表示を示しています。 DirectWrite のテキストの位置指定とレンダリングには、既定で、サブピクセルの ClearType が使用されますが、他のレンダリング オプションも使用できます。 既存のアプリケーションの多くは、GDI を使用して UI の大半をレンダリングします。また、アプリケーションによっては、テキストのレンダリングに引き続き GDI を使用する、システム編集コントロールを使用するものもあります。このようなアプリケーションに DirectWrite のテキストを追加すると、アプリケーション全体でテキストの表示の一貫性を保つため、サブピクセルの ClearType によるテキストの読みやすさを諦めることが必要になる場合があります。 こうした要件を満たすために、DirectWrite では、次のレンダリング オプションもサポートしています。
このようなレンダリング モードはそれぞれ、DirectWrite API と Windows 7 付属の新しい ClearType チューナーを使用して細かく調整できます。 ページのトップへ 4. API の概要IDWriteFactory インターフェイスは、DirectWrite 機能を使用する際に最初に使用するものです。ファクトリは、併用できる一連のオブジェクトを作成するルート オブジェクトです。 テキストの描画やヒット テストを実行する前に、指定された制約に合わせて適切にテキストの書式設定とレイアウトを行う必要があるため、書式設定やレイアウトの操作は必須要件になります。この目的で IDWriteFactory インターフェイスを使用して作成できる 2 つの主なオブジェクトは、IDWriteTextFormat と IDwriteTextLayout です。IDWriteTextFormat オブジェクトは、1 つの段落のテキストの書式設定情報を表します。IDwriteFactory::CreateTextLayout 関数は、入力文字列と関連する制約 (出力する必要がある空間のサイズなど) に加え、IDWriteTextFormat オブジェクトを受け取り、その後の操作で使用する、完全な分析と書式設定が行われた結果を IDWriteTextLayout オブジェクトとして返します。 その後、アプリケーションでは DrawTextLayout 関数を使用してテキストをレンダリングできます。この関数は、Direct2D に用意されていますが、GDI、Direct2D などのグラフィックス システムを使用してグリフをレンダリングできるコールバック関数を実装することでテキストをレンダリングすることもできます。テキストに設定された書式が 1 つの場合、Direct2D の DrawText 関数を使用すると、IDWriteTextLayout オブジェクトを作成する必要なく、簡単にテキストを描画することができます。 a. DirectWrite を使用した "Hello World" の書式設定と描画次のサンプル コードでは、アプリケーションで IDWriteTextFormat オブジェクトを使用して 1 つの段落の書式を設定し、Direct2D の DrawText 関数を使用してその段落を描画する方法を示します。
ページのトップへ b. フォント システムへのアクセスDirectWrite を使用すると、上記の例で IDWriteFormat オブジェクトを使用してテキスト文字列のフォント ファミリ名を指定する以外に、アプリケーションでは、フォントの列挙と、埋め込まれたドキュメントのフォントに基づいてカスタムのフォント コレクションを作成する機能により、使用するフォントをより細かく制御できます。 IDWriteFontCollection オブジェクトは、フォント ファミリのコレクションです。DirectWrite では、システム フォント コレクションと呼ばれる特殊なフォント コレクションを介して、システムにインストールされた一連のフォントへのアクセスが提供されます。このアクセスを取得するには、IDWriteFactory オブジェクトの GetSystemFontCollection メソッドを呼び出します。また、アプリケーションでは、アプリケーション定義のコールバックによって列挙された一連のフォント (アプリケーションによってインストールされるプライベート フォント、ドキュメントに埋め込まれたフォントなど) から、カスタム フォント コレクションを作成することもできます。 その後、アプリケーションは、GetFontFamily を呼び出して、コレクション内の特定の FontFamily オブジェクトにアクセスしてから、IDWriteFontFamily::GetFont を呼び出して、特定の IDWriteFont オブジェクトにアクセスできます。IDWriteFont オブジェクトは、フォント コレクション内の 1 つのフォントを表し、情報プロパティといくつかの基本的なフォント メトリックを公開します。 IDWriteFontFace は、1 つのフォントを表すもう 1 つのオブジェクトで、フォントの完全なメトリックを公開します。IDWriteFontFace オブジェクトは、フォント名から直接作成できます。そのため、アプリケーションでは、フォント コレクションを取得してそのコレクションにアクセスする必要はありません。これは、特定のフォントの詳細を照会する必要がある、Microsoft Word などのテキスト レイアウト アプリケーションで役立ちます。 次の図は、このようなオブジェクトの関係を示しています。 IDWriteFontFace オブジェクトIDWriteFontFace オブジェクトは、フォントを表しますが、IDWriteFont オブジェクトよりも詳細なフォント情報を提供します。IDWriteFontFace オブジェクトのフォント メトリックとグリフ メトリックは、テキスト レイアウトを実装するアプリケーションで役立ちます。 ほとんどのメインストリーム アプリケーションでは、こうした API を直接使用するのではなく、IDWriteFont オブジェクトを使用したり、フォント ファミリ名を指定したりします。 次の表に、この 2 つのオブジェクトの使用シナリオを示します。
アプリケーションでフォントのダイアログ ボックスを (部分的に) 初期化する際に使用できるサンプル コードを次に示します。
ページのトップへ c. テキスト レンダリングテキスト レンダリング API により、DirectWrite フォントのグリフを、Direct2D サーフェスまたは GDI デバイス非依存のビットマップにレンダリングしたり、アウトラインまたはビットマップに変換したりできます。 DirectWrite の ClearType レンダリングでは、以前 Windows に実装されたものに比べて鮮明度とコントラストが向上した、サブピクセル ポジショニングがサポートされています。また、DirectWrite では、ビットマップが埋め込まれたアジア系言語用フォントを含むシナリオや、ユーザーがすべての種類のフォント スムージングを無効にしているシナリオをサポートするために、エイリアス表示の白黒のテキストもサポートされています。 すべてのオプションは、DirectWrite API からアクセスできる、ClearType の使用可能なすべてのノブによって調整できます。また、これらのオプションは、Windows 7 の新しい ClearType チューナーのコントロール パネル アプレットでも公開されます。 グリフのレンダリングに使用できる API は 2 つあります。1 つは、Direct2D を使用してハードウェア アクセラレータによるレンダリングを提供し、もう 1 つは、GDI ビットマップへのソフトウェアによるレンダリングを提供します。IDWriteTextLayout オブジェクトを使用し、IDWriteTextRenderer コールバックを実装するアプリケーションでは、DrawGlyphRun コールバックに応じてこの関数のいずれかを呼び出すことができます。また、独自のレイアウトを実装するアプリケーションやグリフ レベルのデータを処理するアプリケーションでも、これらの API を使用できます。
注: ほとんどのシナリオでは、アプリケーションは、グリフをレンダリングするこのような API を使用する必要はありません。アプリケーションでは、IDWriteTextLayout オブジェクトを作成したら、ID2D1DrawingSink::DrawTextLayout メソッドを呼び出してテキストをレンダリングできます。 カスタム レンダリング モードガンマ、ClearType レベル、ピクセル座標、拡張されたコントラストなど、多くのパラメーターがテキストのレンダリングに影響します。レンダリング パラメーターは、IDWriteRenderingParams パブリック インターフェイスを実装するオブジェクトによってカプセル化されます。レンダリング パラメーターのオブジェクトは、ハードウェアのプロパティや、Windows 7 の ClearType コントロール パネル アプレットで指定されたユーザーの基本設定に基づいて、自動的に初期化されます。通常、クライアントで DirectWrite のレイアウト API を使用すると、DirectWrite により、指定された測定モードに対応するレンダリング モードが自動的に選択されます。 さらに詳細な制御を必要とするアプリケーションでは、IDWriteFactory::CreateCustomRenderingParams 関数を使用して、異なるレンダリング オプションを実装できます。また、この関数を使用して、ガンマ、ClearType レベル、ピクセル座標、拡張されたコントラストを設定することもできます。 使用できるレンダリング オプションには、次のようなものがあります。
ページのトップへ 5. GDI との相互運用性IDWriteGdiInterop インターフェイスでは、GDI との相互運用性が提供されます。これにより、アプリケーションは、GDI コード ベースへの既存の投資を継続して活用し、レンダリングまたはレイアウトで選択的に DirectWrite を使用できるようになります。 アプリケーションが GDI フォント システムとの間で移行できるようにする API を次に示します。
ページのトップへ 6. まとめ読みやすさの向上は、画面上に表示されるデータと印刷物のどちらでも、ユーザーにとって大きな価値があります。DirectWrite では、アプリケーション開発者が Windows アプリケーションのテキスト表示品質を向上するのに役立つ操作性と複数層のプログラミング モデルが提供されています。アプリケーションでは、DirectWrite を使用して、テキスト レイアウト API で UI とドキュメントに多彩な書式が設定されたテキストをレンダリングできます。より複雑なシナリオでは、アプリケーションは、直接グリフを操作したり、フォントにアクセスしたりできます。また、高品質の文字体裁を実現するために DirectWrite の機能を使用することもできます。 DirectWrite の相互運用機能により、アプリケーション開発者は、既存の Win32® コード ベースを継続して使用しながら、アプリケーションで DirectWrite を選択的に採用することができます。 詳細については、Windows 7 および .NET Framework 3.5 Service Pack 1 用 Windows® ソフトウェア開発キット (SDK) のプレベータ版 (PDC の参加者に配布) と PDC 2008 の実習を参照してください。 ページのトップへ |
7. 付録: Win32 の移行
Win32® アプリケーション コードを移行する開発者のために、次の表に、Win32 テキスト API とそれに相当する DirectWrite API を示しています。
GDI のテキスト API
説明
DirectWrite における同等のテキスト API
埋め込まれたフォントをシステム フォント テーブルに追加します。
CreateCustomFontFileReferece + CreateCustomFontCollection
フォント リソースをシステム フォント テーブルに追加します。
これと同等のものはありません。 AddFontResource では、GDI フォントの "インストール" 手順の一環としてフォント リソースをシステム フォント コレクションに追加します。DirectWrite では、システム コレクションが最初に設定され、その更新が裏側で自動的に監視されるため、フォントをインストールする必要がなくなります。
プライベート フォントまたは列挙不可能なフォントをシステム フォント テーブルに追加します。
同上
論理フォントを作成します。
アプリケーションでは、論理フォントではなく、一連のフォント プロパティ (ファミリ名、太さ、スタイル、伸縮、サイズなど) を指定して、IDWriteTextFormat オブジェクトを作成できます。フォントを列挙する必要があるアプリケーションだけが、IDWriteFontCollection を介して IDWriteFont オブジェクトにアクセスします。
構造体から論理フォントを作成します。
同上
構造体から論理フォントを作成します。
同上
四角形の中に、書式設定されたテキストを描画します。
IDWriteTextLayout::Draw
四角形の中に、書式設定されたテキストを描画します。
IDWriteTextLayout::Draw
フォントを処理する EnumFontFamiliesEx 関数で使用される、アプリケーション定義のコールバック関数です。
IDWriteFontFace::GetSystemFontCollection を介した IDWriteFontCollection インターフェイス
システム内にある、特定の特性を持つフォントをすべて列挙します。
IDWriteFontFace::GetSystemFontCollection を介した IDWriteFontCollection インターフェイス
文字列を描画します。
IDWriteTextLayout::Draw
または IDWriteRenderBitmapTarget::DrawGlyphRun
縦横比フィルター用の設定を取得します。
N/A
TrueType フォントから連続する文字の幅を取得します。
IDWriteFontFace::GetDesignGlyphMetrics
現在のフォントから連続する文字の幅を取得します。
IDWriteFontFace::GetDesignGlyphMetrics
TrueType フォントから、連続するグリフ インデックスの幅またはグリフ インデックスの配列の幅を取得します。
IDWriteFontFace::GetDesignGlyphMetrics
文字列に関する情報を取得します。
IDWriteTextAnalyzer
現在のフォントから連続する文字の幅を取得します。
IDWriteFontFace::GetDesignGlyphMetrics または IDWriteTextLayout::GetMetrics
現在のフォントから連続する文字の幅を小数値で取得します。
IDWriteFontFace::GetDesignGlyphMetrics または IDWriteTextLayout::GetMetrics
現在のフォントから、連続するグリフ インデックスの幅またはグリフ インデックスの配列の幅を取得します。
IDWriteFontFace::GetDesignGlyphMetrics または IDWriteTextLayout::GetMetrics
TrueType フォントのメトリック データを取得します。
IDWriteFontFace::TryGetFontTable
表示コンテキスト用に選択されたフォントに関する情報を返します。
N/A
フォントでサポートされている Unicode 文字を返します。
IDWriteFont::HasCharacter のループ
文字列をグリフ インデックスの配列に変換します。
IDWriteFontFace::GetGlyphIndices
TrueType フォントの文字のアウトラインまたはビットマップを取得します。
グリフ メトリック -- IDWriteFontFace::GetDesignGlyphMetrics、
実際のアウトライン情報 --IDwriteFontFace::GetGlyphRunOutline、
グリフ ビットマップ -- IDWriteRenderBitmapRenderTarget::DrawGlyphRun
フォントの文字のカーニング ペアを取得します。
カーニングはレイアウトの文字体裁プロパティで行えます (DirectWrite 自体がカーニングを実行するため、この情報を返すためのメソッドはありません) 。
TrueType フォントのテキスト メトリックを取得します。
IDWriteFontFace::GetMetrics
TrueType フォントがインストールされているかどうかを返します。
N/A (TrueType フォントは、既定で、 Windows Vista および Windows 7 にインストールされています) 。
タブを含めた、文字列の幅と高さを計算します。
IDWriteTextLayout::GetMetrics
デバイス コンテキストのテキストの配置設定を取得します。
IDWriteTextFormat::GetTextAlignment
デバイス コンテキストの現在の文字間隔を取得します。
N/A
デバイス コンテキストのテキストの色を取得します。
N/A (DirectWrite は、レンダリングとは無関係のため、色を認識しません。アプリケーション自体が色を追跡する必要があります) 。
スペースに収まる文字列の文字数を取得します。
IDWriteTextLayout::GetMetrics
スペースに収まるグリフ インデックスの数を取得します。
IDWriteTextLayout::GetMetrics
テキストの文字列の幅と高さを計算します。
IDWriteTextLayout::GetMetrics
グリフ インデックスの配列の幅と高さを計算します。
IDWriteTextLayout::GetMetrics
デバイス コンテキストで選択されているフォント名を取得します。
IDWriteFont::GetFaceNames (すべての名前を返します)
フォントのメトリックスをバッファに格納します。
IDWriteFontFace::GetMetrics
デバイス コンテキストのフォントとテキストの色を使用して、複数の文字列を描画します。
N/A。複数のレイアウト オブジェクトを作成します。
ソースがドキュメントに埋め込まれたフォントを、システム フォント テーブルから削除します。
関連オブジェクトの Iunknown::Release
ファイル内のフォントをシステム フォント テーブルから削除します。
N/A
プライベート フォントまたは列挙不可能なフォントをシステム フォント テーブルから削除します。
N/A
論理フォントを物理フォントにマップする際に使用されるアルゴリズムを変更します。
N/A
デバイス コンテキストのテキスト配置フラグを設定します。
IDWriteTextFormat::SetTextAlignment
文字間隔を設定します。
N/A
デバイス コンテキストのテキストの色を設定します。
アプリケーションは、Draw 呼び出しのいずれかで色を指定する必要があります。
システムが文字列のブレーク文字に追加する間隔を指定します。
N/A。配置と文字間隔は、このリリースではサポートされていません。
指定された値までタブを展開し、文字列を指定の場所に書き込みます。
IDWriteTextLayout::Draw
文字列を指定の場所に書き込みます。
IDWriteTextLayout::Draw
ページのトップへ