Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

今更始める Win32 + DirectWrite #pronamaclrhsapporocpp

16,347 views

Published on

2014/7/12 プログラミング生放送+CLR/H+Sapporo.cpp 勉強会@札幌 ユビキタス協創広場 U-cala における発表資料です。

Published in: Software
  • Be the first to comment

今更始める Win32 + DirectWrite #pronamaclrhsapporocpp

  1. 1. [1] hiyohiyo Twitter: @openlibsys http://crystalmark.info/ プログラミング生放送 +CLR/H+Sapporo.cpp 勉強会 @札幌 ユビキタス協創広場 U-cala
  2. 2. [2] 本日のお品書き 自己紹介 DirectWrite DirectWrite活用例 Win32+DirectWrite まとめ
  3. 3. [3] 自己紹介
  4. 4. [4] 自己紹介 名前:hiyohiyo/ひよひよ 年齢:35歳 家族:妻, 愛娘, 愛息子 趣味:フリーソフト開発 (約16年) 住所:北海道札幌市 □代表作: CrystalDiskInfo, CrystalDiskMark 他(通称 Crystal シリーズ) パソコンがもっと好きになるフリーソフトを一貫して開発しています Microsoft MVP for Visual C++ Jan 2014 – Dec 2014
  5. 5. [5] CrystalMark 2004 ランキング対応ベンチマーク
  6. 6. [6] CrystalCPUID CPU情報ツール
  7. 7. [7] CrystalDiskMark 3 Shizuku Edition 新世代ディスクベンチマーク ベンチマーク結果なんておまけですwww 通常版
  8. 8. [8] CrystalDiskInfo 6 Shizuku Edition HDDやSSDの健康状態を音声で教えてくれる!! 新世代ディスク情報ツール 通常版
  9. 9. [9] Crystal Dew World 公式応援キャラクター 水晶雫
  10. 10. [10] 【宣伝】第二世代萌え駆動開発 http://www.slideshare.net/hiyohiyo/mddwin32 ソフトウェア開発で一番大切 なことを紹介しています!!
  11. 11. [11] DirectWrite
  12. 12. [12] 何とも言えない劣等感・・・ 出典:Macに慣れたらWindowsのフォントが耐えられないので解決してみた|Mac http://weekly.ascii.jp/elem/000/000/206/206833/ やっぱりMacだよね Windowsのフォントは○ソ 高品質なフォントレンダリングエンジン さえあれば・・・
  13. 13. [13] PDC2008 出典:Windows 7: Introducing Direct2D and DirectWrite http://channel9.msdn.com/Blogs/pdc2008/PC18 DirectWrite キタァァァァァΣ(*゚д゚ノ)ノァァァァァ!!
  14. 14. [14] DirectWrite の位置づけ 出典:Windows グラフィックス アーキテクチャの概要 http://msdn.microsoft.com/ja-jp/library/windows/desktop/ff684176(v=vs.85).aspx
  15. 15. [15] さらに煽りが・・・ 出典:Windowsの画面表示を変えるDirect2DとDirectWrite http://ascii.jp/elem/000/000/491/491463/index-3.html こっ、これは期待するしかねぇ!!!!
  16. 16. [16] 理想 旧アプリも自動で DirectWrite !! DirectWrite 描画 GDI/GDI+ 描画 DirectWrite 描画に置換
  17. 17. [17] Win8 メモ帳 ギッ、ギザギザしてる~~~orz
  18. 18. [18] 現実 それぞれ独立した形で画面に表示 DirectWrite 描画 GDI/GDI+ 描画
  19. 19. [19] DirectWrite 活用例
  20. 20. [20] 対応ソフトは多数?登場中!! Web ブラウザ • Internet Explorer 9 以降 • Firefox • Google Chrome (Beta) など テキストエディタ • 秀丸 • Sublime Text など 出典:秀丸エディタ Ver8.10 新機能の紹介(DirectWrite対応) http://hide.maruo.co.jp/software/hidemaru810/
  21. 21. [21] Google Chrome の DirectWrite 有効化 Google Chrome は未だに DirectWrite に正式対応していないため、最新 Beta 版 にて下記設定を行う必要があります。 1) 窓に「Chrome://flags」 2) 「Disable DirectWrite」 を無効にする 3) 再起動 1 2 3
  22. 22. [22] DirectWrite は簡単に利用できます Windows Store App WPF 4.x IEコンポーネント (IE9以降) ただし Win32は除く
  23. 23. [23] Win32+DirectWrite
  24. 24. [24] Visual C++/Win32 における UI 構築 CrystalDiskInfo 1~5 CrystalDiskInfo 6 開発環境 Visual C++/MFC Visual C++/MFC ベースクラス CDHtmlDialog ベース独自拡張 CDialogEx ベース独自拡張 レイアウト HTML + CSS + JavaScript ピクセル固定 HiDPI 対応 OpticalZoom (IE8 以降) 自前拡大 (Per-Monitor DPI 対応) 文字列描画 DirectWrite (IE9 以降) GDI/GDI+ (DirectWrite 実装中) フォント 品質は劣化
  25. 25. [25] GDI/GDI+フォントはやっぱり不評… Ver. 6 にしたらフォントが滲んで読みづらい!! Ver. 5 に戻そうっと GDI+ だと文字が表示されないぞ? ※OpenTypeフォント非対応のため… ユーザーの声 大正浪漫壁紙可愛いな。 いやいや、明治水着も捨てがたい。
  26. 26. [26] DirectWrite に対応したい!! 俺嫁 最近フォント、フォント言ってるけど、 私は全然そんなの気にしないよ? そんなに気にしてる人はいないんじゃない? 読めれば一緒だよ。 おっ、お前何年俺の嫁やってるんだよorz 美しいフォントに憧れるのは人類普遍の原理だろ!! やっぱり、フォントのGDI/GDI+化は劣化だよなぁ。 何とかしないと… DirectWrite 対応しましょう!!
  27. 27. [27] Win32 コントロールの DirectWrite 化 ボタン コントロール スタティック コントロール エディット コントロール
  28. 28. [28] Win32 コントロールの DirectWrite 化 どっ、どうしたら・・・ まだ慌てるような時間じゃない 先行事例を調べよう
  29. 29. [29] ネットで見かけた参考にならない事例 DirectWrite 対応した MFC コントロールはありませんか? たとえば、CEditDW とか。 ない
  30. 30. [30] なければ作る!! 実装例が見つかりません!! 仕方あるまい 自分で作ろう!
  31. 31. [31] GDI + DirectWrite 相互運用 一般的に DirectWrite は Direct2D と組み合わせて使用され ますが、IDWriteGdiInterop を介して従来の GDI と組み 合わせて使用することも可能です。 既存の資産(負債?)を生かしつつ、最新?テクノロジーを 利用できるわけです。 DirectWrite Direct2D GDI IDWriteGdiInterop
  32. 32. [32] DirectWrite 対応ボタンコントロール GDIで描画 GDI+で描画 DirectWrite で描画 オーナードローで実装中…
  33. 33. [33] オーナードローの流れ 背景を描画 ボタン画像を描画 文字列を描画 GDI/GDI+/DirectWrite ダイアログに表示 全ての描画処理を自前で実装します!! 1) 背景画像描画 2) アクアボタン描画 (透過PNG) 3) 文字列描画
  34. 34. [34] 今日という日には間に合いませんでした… まだ完成してません!! 漏れてはいけない何かが漏れてる…
  35. 35. [35] まとめ
  36. 36. [36] まとめ Win32 + DirectWrite は茨の道orz 素直に WPF かストアアプリ で作りましょう♪
  37. 37. [37] 参考文献
  38. 38. [38] • 週アスPLUS Macに慣れたらWindowsのフォントが耐えられないので解決してみた|Mac http://weekly.ascii.jp/elem/000/000/206/206833/ • ASCII.jp Windowsの画面表示を変えるDirect2DとDirectWrite http://ascii.jp/elem/000/000/491/491463/index-3.html • PDC2008 Introducing Direct2D and DirectWrite http://channel9.msdn.com/Blogs/pdc2008/PC18 参考文献
  39. 39. [39] ご清聴ありがとうございました

×