ホーム  > ブログ一覧  > Windowsの描画処理

ブログ

Windowsの描画処理

2019.04.18


DSC_0108

Windowsというと1995年に発売になったWindows95で一気に普及したので
Windows95がWindowsの初代と思っている人も多いかもしれません。
実はそれより前から存在してます。Windows3.0/3.1は当時国内で一般的に
流通していたNECや富士通のパソコン用のものもあったはずですが
さすがにそれ以前のものを見たことのある人は国内にはほとんどいないん
じゃないでしょうか。調べてみるとWindows1.0は1985年発売のようです。

 

Windowsは基本的に前のバージョンで動いていたアプリケーションを利用
できるように拡張されてきたのが強みと言えます。(残念ながら64bit
バージョンのWindows10等では16bitアプリのサポートは打ち切られました)
グラフィックや文字を画面に表示させる描画エンジンもハードウェアの
進化とともに拡張、正確にいえば併用できる形で追加されてきました。

 
・GDI
ハードウェアアクセラレーションの恩恵が(ほとんど)受けられませんが、
基本的な描画エンジンなので今でも使われ続けています。後に機能を
拡張したGDI+が追加されました。

 
・DIBSection
GDIではビットマップの画像を書き換えるコストが高く、ゲームのような
1秒間に30~60回も書き換えを行うものには不向きでした。そこでGDIと
互換性を持たせつつデータをCPUから直接読み書きすることのできる
ビットマップとして追加されました。

 
・DirectDraw
ビデオカードのVRAM容量増加に伴い、VRAM内高速転送機能を利用して
ゲームに利用できるように追加されたものです。OSのリソース管理を
バイパスすることで高速化できましたが画面モード切替等で画像データを
ロストするうえ、カラーモード別に別処理が必要となるので面倒な面が
ありました。

 
・Direct3D/OpenGL
Voodoo社の最初期の3D処理機能を搭載するビデオカードは、独自のAPI
だったため、のちに発売された他社のビデオカードでは互換性がなく、
専用アプリが動作しませんでした。ビデオカードの違いを吸収して同一の
インターフェースで利用できるように抽象化されたものがDirect3Dです。
ビデオカードも初期のものはいわゆるポリゴンを高速描画できるだけの
ものでしたが、テクスチャ、光源処理、頂点変換、ピクセルシェーダと
年々進化していきました。それらに対応して頻繁に拡張が続いたので
Direct3Dといってもたくさんバージョンがあります。これもOSのリソース管理を
バイパスするため管理はプログラマの責任でした。このころOpenGLも普及が
始まります。はっきりとした区別はありませんでしたが大体ゲームはDirect3D、
ツールはOpenGLを利用するものが多かった気がします。

 
・Direct2D/DirectWrite
3D描画機能が進化するとこれを利用して2D描画も高速高品質にしようと
なるのは当然の流れでDirect3Dの技術上に作られたのがDirect2Dと
DirectWriteです。Windows7登場のころですからこれも10年ほど前になります。

 

PDF簡易チェッカを作りながらプレビュー画面をどの描画方法で行うか
悩んでます。原稿の拡大縮小回転表示するならDirect2Dでしょうか。

 

写真は国道沿いの田んぼに一斉に咲いているゲンゲ(蓮華)です。
プログラムを書いているとあっという間に夕方になってしまいます。

ページトップへ