アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」
画面が3D化しても (スコア:1)
今のままだとあまり便利にはならないでしょうね。
とはいえ、画面の描画に今までの遅かったGDIではなく、
ゲーム用に高速化されている(高速化されていく)
DirectXベースの描画になるという点については、
少しは期待してよいのではないかと思います。
Re:画面が3D化しても (スコア:0)
> ゲーム用に高速化されている(高速化されていく)
> DirectXベースの描画になるという点については、
> 少しは期待してよいのではないかと思います。
素朴な疑問なのですが、DirectXベ
Re:画面が3D化しても (スコア:1)
「GDIクソだぜ!俺たちが作ったらこうなるんだ!イェーイ!!」
という理由で作られたからです。
これではあまりにひどいので、普通に書くと
あまりに煩雑化した階層構造を経由して描画するGDIとは異なり、
グラフィックドライバーに直接命令するイメージに近い形を実現しようと
しているから、GDIに比べて高速であると思われる。
という感じでどうでしょうか?(誰に聞いてるんだか…)
ちなみに僕はWebブラウザの文字の描画がどのように行われているか
分からないので、その例に関してはお答えしかねます。
以下、長いので面倒
Re:画面が3D化しても (スコア:0)
> グラフィックドライバーに直接命令するイメージに近い形を実現しようと
> しているから、GDIに比べて高速であると思われる。
おお!
イメージがつかめました。
ところで…
> マルチタスクで色んな場所が一斉に更新される
> /大量の文字を画面に描画しようとすると、画面の更新は一度に行った方が
> 速くなると予測されます。
ここが分かりません。
マルチタスクでの各タスクからの更新要求はフォントやボタンや
線の描画ということになりますが、まとめてやってもバラでやっても
更新しなければならないバッファの絶対量は変わらないと思うの
ですが。
CPUがイメージを生成する処理と別のところにネックがあるという
ことでしょうか?
(引用した3行はDirectXとも違う話と受け取りました)
Re:画面が3D化しても (スコア:1)
GPU叩く際に発生するオーバヘッドは作業量の増減にあまり左右されません。また、垂直同期間隔より短い更新を繰り替えしても、無駄なわけです。
# rm -rf ./.
Re:画面が3D化しても (スコア:1)
でも、残念ながら同じと思っているのが間違いなのです。
実際にGDIではどう処理するかと言うと、
1.更新すべき場所のメモリ空間を別のバッファに退避する
2.退避したエリアを初期化する
3.問題の場所に必要なデータを描画する
4.1に戻る
となっているようです。
だから、処理落ちしたウィンドウの部分が灰色に抜けたりすると思います。
で、これが複数のウィンドウからガンガン更新要求がかかるわけで、
1-4のループががんがん発生するわけです。
DirectXを使うと、
1.画面用バッファの初期化
2.文字の描画
3.すべての文字を描画するまで2を行う
4.垂直同期の時間がきたら画面用バッファからメモリへのデータ転送
となります。
つまり、1文字書いても256文字書いても同じだけの初期化処理で済むのです。
単純に1命令1回の時間を消費するとして、100文字の描画をしたとすると、
処理が必要な量は
GDI:
文字の描画範囲を別のバッファに退避:100回
文字の描画範囲の初期化:100回
文字の描画:100回
合計:300回
DiretX:
画面バッファ全体の初期化:1回
文字の描画:100回
画面バッファから画面へのメモリ転送:1回
合計102回
これだけ処理すべき量が減ります。
これが分かると、「PS2ってWindowsなんかよりハイスペックだよね」
などというハズカシイ発言をしなくて済むようになります。
Re:画面が3D化しても (スコア:0)
>実際にGDIではどう処理するかと言うと、
>1.更新すべき場所のメモリ空間を別のバッファに退避する
>2.退避したエリアを初期化する
>3.問題の場所に必要なデータを描画する
>4.1に戻る
>となっているようです。
これはUSER(32)の範疇であって、GDIはぜんぜん関係ないと思うんですけれど。
Re:画面が3D化しても (スコア:1)
正確には、USER32(窓)の中でGDIの描画オブジェクト
(線とか円とか)が存在して、その範囲内に描画を行う、でしたかね?
でも、GDI使う=USER32も使うだと認識していますので、
全く関係ないとも言い切れないと思います。
で、1ですが、マルチウィンドウの基礎的な処理として、一応やってると思って
たんですが、Windowsってやってないんですね、すんませんでした。
2に関しては、背景消去(前景も消す?)のつもりで書いてます。
再描画要求の構造体の初期化は、もしあったとしたら完全に記憶からとんでます。
所詮は数日で得た知識。未熟者がでしゃばりすぎました。
Re:画面が3D化しても (スコア:0)
そもそも現在のWindowsの描画方法は、昔の貧弱な描画能力を前提としている部分も多々あると思いますので、
古い方
Re:画面が3D化しても (スコア:0)
をしていたのが、見えるもんは全部テクスチャードポリゴンにして
CPUはおおざっぱな作業しかしなくてよくなったから、CPUの負荷が
へるってことだろう。
Re:画面が3D化しても (スコア:0)
たぶん (スコア:1)