- 437 名前:396=422 mailto:sage [2018/02/18(日) 13:53:01.38 ID:HH6qVqdM.net]
- 該当の条件の時、新たには何の描画もしていない静止状態でも、Linuxのシステム・モニターで
CPUパワーが膨大に消費されていることを確認しました。このことは、>>423 を裏付ける物です。 だとすると、Dirty Bit を導入して、update_surface_region()の頻度を下げれば、この低速化 は修正できる可能性が出てきました。LineTo, TextOut, MoveWindow, SetWindowPos, ShowWindow などを使ったときだけ、DirtyBit を 1にして、1の時だけ update_surface_region() を呼び出し、呼び出した後には 0 にすれば良いのではないかということです。 条件は: 1. WINEを使用して Windowsアプリを走らせていること。 2. アプリ内で CreateWindowEx() のdwExStyle に WS_EX_LAYERED を指定して Windowを作成 済みであること。 3. さらに、SetLayeredWindowAttribute() に LWA_COLORKEY を指定して「完全透明色」を 指定していること。 4. その Window の背景を「完全透明色」で消去していること。 5. その Window 内部に通常色で、LineTo() や TextOut() によって図形や文字を 描いた後であること。 です。 MDIを使っている事や、CMDIChildWnd 動かすかどうかは関係ない様です。 CMainFrame をドラッグした時には遅く感じないのは、その動作についてはシステムが CPU の優先順位を上げているからではないかと思います。
|

|