WPFの描画 – 固定ページ 2 – プログラミング – Home

通知
すべてクリア

[解決済] WPFの描画

固定ページ 2 / 2

ryo
 ryo
(@ryo)
ゲスト
結合: 23年前
投稿: 252
 

>WPFみたいな描画をSDKで行いたいと考えています。
>WPFはDirectXでDWM用のデータ(0xAARRGGBB)を吐くそうです。
>GDIを用いない描画システムを考えています。

DirectXを使えばいいのでは・・・


返信引用
dicson
 dicson
(@dicson)
ゲスト
結合: 14年前
投稿: 45
Topic starter  

PATIOさん、たしかにそうですが研究中ですので。。
ryoさん、DirectXはちょっと使いにくいので・・


返信引用
subaru
 subaru
(@subaru)
ゲスト
結合: 19年前
投稿: 381
 

>WPFみたいな描画をSDKで行いたいと考えています。
Win32からはWIC(Windows Imaging Component)、Direct2D、DirectWriteを使うべき。
ちなみにDirectXをインストールしなくてもSDKのみで使えますよ。


返信引用
dicson
 dicson
(@dicson)
ゲスト
結合: 14年前
投稿: 45
Topic starter  

subaruさん、ありがとうございます。Windows Imaging Componentとは何ですか?
dllダウンロードと.NETの話しか出てこないのですが・・


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 22年前
投稿: 320
 

調べてみました。

MSDNのヘルプが以下になります。
MSDN: Windows Imaging Component (Windows)
http://msdn.microsoft.com/en-us/library/ee719902.aspx

あと,MSDNマガジンで2記事ほどありました。
MSDN: Windows with C++: Windows Imaging Component Basics
http://msdn.microsoft.com/ja-jp/magazine/cc500647.aspx
MSDN: Windows と C++: WIC を使用した Windows Vista アイコンのデコード
http://msdn.microsoft.com/ja-jp/magazine/cc546571.aspx


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

ROMしてたんですが.....
dicsonさん、
 VRAMを直接制御できたのは、NECのPC-9801XXの全盛期のころですね。
グラフィック用のICもμPD7220系列で上位互換がありました。
DOS/Vも直接制御できたかもしれませんが、グラフィック用のICが機種ごとに
違ったのでややこしかったかも知れませんね。
統一規格はあったのですが.......
現在にいたっては、GPUのメーカも競争、かつ、VRAMの制御も独自規格です。
VRAMの直接制御は無理ですね。
 WPFはぐぐれば専用のページが見れます。
ただ要約すると、
  「vistaの頃のプレゼンテーションの機能をWindows7で実現する。」
みたいで、
  GDI、DirectX等を使わないで直接VRAMを制御して高速に描画する。
のではないと思います。
vistaのグラフィックの描画はかえって遅かったのではないでしょうか。

むしろ、GDIやDirectX等を使って描画のアルゴリズムを考えるほうがいいと思います。


返信引用
subaru
 subaru
(@subaru)
ゲスト
結合: 19年前
投稿: 381
 

おおざっぱに説明するとWICがGDI+のBitmapクラスの機能に相当するもので
Direct2DがGDI+のGraphicsクラスの機能に相当すると言えるでしょうか。
WICはWPFでも使われていて、元々Vista以降からサポートされていましたが
現在はXPのSP3でも標準で使えるようになっていたと思います。

WPFの描画には、WPFとDirect3Dの中間にMedia Integration Layer(MIL)と
呼ばれるものが関わっているそうですが、VC++から直接MILを使うことは
できないようです。
(MSDNにはIMILBitmapEffectというインターフェースの説明もあるけど
本当に存在するか怪しい?)
しかしネイティブでもDirect3DをベースにDirect2Dが作られ
MILより高パフォーマンスな描画ができるようになった
・・・という話がこの辺りに書かれています。
http://msdn.microsoft.com/ja-jp/magazine/dd861344.aspx

Direct2DとDirectWriteはWindows7から提供されましたが
現在はVista SP2以降でも利用できるようになっているようで、
IE9やFireFox4でも採用されています。


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 22年前
投稿: 320
 

> ただ要約すると、
>   「vistaの頃のプレゼンテーションの機能をWindows7で実現する。」
> みたいで、

これはWPFのことを言っていますか?
WPFはそういうものではないですよ。
そもそもWPFの描画はDirectX9に依る様になっていて,だからこそWindows XPでもWPFが動
くのですが。
# XPだといろいろ残念な描画になることも多いですが……。

> vistaのグラフィックの描画はかえって遅かったのではないでしょうか。

CPUがそれなりに速ければ遅いことはないですけどね。
ベンチマークはともかく。

個人的にNyaruru氏は信用できると思っているし,
否定するだけの知識を持っていないのでNyaruru氏のはてなダイアリーからいくつか参考
記事を挙げますが,
これらを読むかぎり,Windows 7で高速化,ということは無いように思えます。

Site: Windows Vista での GDI/GDI+ 描画 - NyaRuRuの日記
http://d.hatena.ne.jp/NyaRuRu/20061201/p1
Site: WDDM, DWM: pros and cons - NyaRuRuの日記
http://d.hatena.ne.jp/NyaRuRu/20061202/p2
Site: Windows 7 のグラフィックスの変更点を整理する - NyaRuRuの日記
http://d.hatena.ne.jp/NyaRuRu/20081126/p1
Site: GDI アクセラレーションについて整理する - NyaRuRuの日記
http://d.hatena.ne.jp/NyaRuRu/20090208/p1


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

> これはWPFのことを言っていますか?
> WPFはそういうものではないですよ。
うーーん、
そうですか、失礼しました。
まぁー僕が言いたかったのは、
 dicsonさんが求めているのはVRAMに直接描画するような高速な方法はないですか?
ということだと思ったのですが、違いましたか?
ぼくはただ、「WPFでもおそらく無理です。」ということを説明したかっただけですね。
それでも、WPFに興味があって使ってみたいのであれば、WPFでぐぐればMSDNのページが
検索できます。


返信引用
dicson
 dicson
(@dicson)
ゲスト
結合: 14年前
投稿: 45
Topic starter  

みなさんありがとうございました。

とりあえずVRAM直接描画は無理で、Direct2D,Write,3Dを使うべきだということがわかり
ました。
WICとDirect2Dでやってみようと思います。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました