読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

GDI

レイヤードウィンドウ - テクスチャ経由の表示はうまくいった。

スワップチェーン経由での表示はクライアント領域しか表示出来なかったので、テクスチャにレンダリングしそれをGetDCしてUpdateLayeredWindowするように変更した。今回はうまくいった。ただ角が丸い。デフォルトでリージョンが設定してあるためだ。XPのUIの…

レイヤードウィンドウの領域いっぱいへの描画

レイヤードウィンドウへの描画であるが、今まではクライアントエリアの大きさでUpdateLayerdWindowしていた。でも他のブログを見るとウィンドウサイズでも問題なく描画できるようなので試してみた。 しかしUpdateLayerdWindowの戻り値は成功(TRUE)にも関わら…

或るプログラマの一生 » レイヤードウィンドウのサンプルコード

或るプログラマの一生 » レイヤードウィンドウのサンプルコード. レイヤードウィンドウについて多少調べたこと レイヤードウィンドウではデフォルトのウィンドウリージョンでクリップがかかることがこのページで分かった。デフォルトのリージョンは左上・右…

レイヤードウィンドウ - 非クライアント領域の描画をどうするか

レイヤードウィンドウで試していないことの一つに、非クライアント領域の描画もできるのかということだ。これができないとウィンドウフレームを自前描画できない。UpdateLayeredWindowの2つ目の引数hdcDstぶGetWindowDCの値を渡せばいいのだろうか。DXGIサ…

レイヤードウィンドウのマウスイベント

レイヤードウィンドウのマウスイベントは透明部分は発生しない。それを検証するためにウィンドウのクライアント領域をドラッグしウィンドウを動かす処理を入れてみた。入れてみた結果が下の動画である。 立方体部分のみマウスイベントが発生するので結果立方…

AlphaBlend

AlphaBlendはWindows2000からあるAPIである。Window7 & WDDM 1.1ドライバであればこのAPIは高速化されることが義務付けられている。でもどの程度高速化されるのかはハードウェア次第だと思うけれど。 昔DirectDrawというのがあって、画面転送を高速に行うた…

GDI Hardware Acceleration

Graphics Guide for Windows 7の91-92ページにGDI Hardware Accelerationというセクションがあり、WDDM1.1ドライバの必須要件が書いてあった。引用しつつ訳してみる。 WDDM v1.1 ドライバは次の2D操作を高速化しなければならない BitBlt ColorFill StretchBl…