ザビタン開発日記
2009 | 01
2008 | 01 | 02 | 06 | 12
2007 | 10 | 11 | 12
12月 15 (土曜日) 2007
12:46
こーほーかくほ〜 「うわーー!このぉ!」
 
なんとか管理の分離はできたしマウス直下のシートを設置することもできた・・・。さて問題は、アプリが作ったウィンドゥ。
シート・・・
シート内にはバッファがある。vramに直接データを書くのではなく、
まずこのバッファと名づけられたメモリに描画する。
で、それらを元に実際にvramにデータを書くのはシステムの仕事。
アプリが作ったシートにも当然バッファがあるんだけど、この場合、そのアプリの権限でのメモリ。まあこれはいい。

問題はそのシートがウインドゥだった場合、タイトルバーやらだけはOSが管理しなくちゃいけないんじゃないかと思うわけ。

(たとえば今だと、シートのバッファ全てがアプリに管理されている。っということは、アプリ側からタイトルバーを壊したりができるわけ。これがどうしても出来ない。そういうふうにすべきではないかと・・・)

すぐに思いつくのが、ひとつのウィンドゥでシートを二枚使うこと。二枚をピッタリ重ねて一枚のようにする。で、後ろ側をシステムが管理してタイトルバーやらを書き込む。アプリが確保したバッファはウィンドゥのクライアント領域だけ!

・・・しかし、どうなんだろう。かなり描画が遅くなりそうな悪寒・・・

・・・まてよおぉぉ??
例えばだけど、これまでのシート。仮に100x100ドットだとするよね?
そーすると、どっち道、10000回メモリを書き換えないといけない。
シートを丸々2枚だと20000回の書き換えだから倍になっちゃうけど、
クライアント領域の座標の時だけは読み込む元を切り替えればすこしif判断が入るだけなのでそんなに遅くならない・・・ってふうにできないかな・・・

ちといろいろやりそうなので、例によってここいらへんにて妄想開始。
 
30日を過ぎたBlogにはコメントできません。
(1) 

PopnupBlog V3 Denali created by Bluemoon inc.