青柳 臣一 ブログ(趣味系)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Win7] Direct2D と DirectWrite

あちこちで 「Windows7 beta を入れてみた」 なんてネタで盛り上がってるようですが、私はまったくついて行けてません(^^;
が、ふと、あるブログ記事が目に留まりました。

SDK Documentation for Direct2D and DirectWrite now live on MSDN

そういや、なんか DirectX に増えるとかなんとか聞いた覚えがあるけど、こいつらかぁ。

リファレンス Direct2D によると

Direct2D は、2-D ジオメトリやビットマップ、テキストをハイパフォーマンス、ハイクオリティにレンダリングするために提供されるハードウエア・アクセラレータが効く、immediate-mode な (直接的な?) 2-D グラフィック API。Direct2D API は GDI、GDI+、Direct3D と協調して動くようにデザインされている。

だそうです。
もちろん、DirectX 族なのでバリバリの COM です。
CoInitialize したあとに、ID2D1Factory を CreateFactory してやって、ID2D1HwndRenderTarget をこさえてやって、、、みたいなノリです。
機能の方は、もっとハードよりな基本的なものだけかと思ったら、グラデーションブラシだとか 3×2 行列の SetTransform だとかそれなりの機能はあるみたいです。

おもしろいなぁ。
GDI+ とか Vista とかで 「もう、2D 描画は CPU で適当にやっとけばいいんじゃね?なんだったら Direct3D を 2D 描画目的に使ってもいいし」 という方向に向かったと思ってたのに、また 「ハードウエア・アクセラレータを使って 2D 描画を高速化!」 なんてところに帰ってきたのか。
と思ったら、Overview なんかに書いてありました。
どうやら Direct2D の中身は Direct3D10 らしい。
ということは、2D 描画だけをしたいときに Direct3D はいろいろと煩雑だからそういったところを隠ぺいして使いやすくしたのが Direct2D ってことなのかな?

もう 1つの DirectWrite。
こちらもリファレンス DirectWrite によると、

今日のアプリケーションでは、ハイクオリティなテキストレンダリング、レゾルーション非依存のアウトラインフォント、ユニコードテキストとレイアウトのサポートがサポートされなくてはいけない。DirectWrite はこれらの機能を提供する。(以下、いろいろと続く)

だそうです。
GDI や Direct2D、その他のレンダリングテクノロジを使ってハイクオリティな ClearType テキストをレンダリングできるともあります。
フォント・ラスタライザとかフォントの描画エンジンそのものが DirectWrite ってことなのかな?
想像だけど、今までのフォント描画エンジンは GDI の一機能というイメージだったけど、それだと Direct3D や Direct2D なんかの非 GDI でのフォント描画はどうするんだっていうことになるので、フォント描画エンジンをレンダリングテクノロジ非依存になるように切りだしたってこと?

コメント

つ ttp://d.hatena.ne.jp/NyaRuRu/20081126/p1

  • 2009/01/14(水) 20:50:04 |
  • URL |
  • x #-
  • [ 編集]

GDIサヨナラの準備かと。

  • 2009/01/14(水) 22:41:58 |
  • URL |
  • KazumaO #-
  • [ 編集]

こちらもかなり難しいけど、、、
読ませて頂いていますww

  • 2010/07/05(月) 09:40:56 |
  • URL |
  • mei #-
  • [ 編集]

CoInitialize不要

検索結果の上位にでてくるようになったので、報告しますね。
Direct2D、DirectWriteを使用するにあたり、
CoInitializeは必要ありませんよ。

  • 2010/12/21(火) 15:33:46 |
  • URL |
  • ななし #-
  • [ 編集]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://shinichiaoyagi.blog25.fc2.com/tb.php/75-a501fff1
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。