[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:7043] Re: r3987 - trunk/src



ほりぐちです.

> これなんですが、HDC 二関する最近の変更はまったく目を通せていないので、
> ソースをちゃんと見ずにいっていますが、ちょっと気になったので。。。
> 
> 上記diff のようなことしなければならない状況と言うのが、ちょっと心配です。

 これは微妙なのですが, 複数の場所で行われています. かなり場当たりっ
ぽいのですが複数のリソースを複数のスレッドがつかみ合っているのでもっ
と全体的に整理しなおさないといけないような気がします.

> それよりなにより、 メンバ hdc のポインタを取得するためにクリティカルセク
> ションを使用するって、意味が無くないですか?  phdc を保持する理由があると
> したらmw32 のポインタ値が変わった事に対応するためと考えられますが、その値
> が変化するのだとしたらEnterCriticalSection()/LeaveCriticalSection() で使
> 用するわけにはいかないはずだし。

 これは単純に大間違いです^^;... 本当はLevae を hdc の変更の後ろに
持っていかなければなりません. 直しておきます.

> あと、hdc_refcount って本当に必要なのかな? と気になる。DC の使い方を整理
> したという事だったと思うのですが、refcount を用いる必要があると言う事は参
> 照による複製を作られると言う事ですよね。

 名前が悪いですね. これでやりたいことは hdc を多重に確保しない, か
つ確保したところで解放するということだけです. 強いて言えば
nestlevel? そうすれば間違えませんかね.

> 1つのスレッドで描画する事が徹底していて、

 これについては, 上で書いたように使い勝手上ちょっと微妙です.

> GetDC()で描画時にHDCを取得するのであれば、HDCは参照コピーされる
> ような事はないと単純に考えますが、そういうわけにもいかない? (ソー
> スを見てないので的外れの可能性が高いのですが)。

-- 
ほりぐちきょうたろう