Carbon で、Quartz

オフスクリーンでやっているのがだめなのかと思い、テストプログラムで、オフスクリーンを転送せずに、長方形を描画する命令だけを残してやってみる。。。

やはり、全く同じで、マウスを動かさないと、再描画してくれないよう。。orz


下記のイベントハンドラで、Contextを取得して、再描画しています。

OSStatus MyDrawEventHandler (EventHandlerCallRef myHandler,
                        EventRef event, void *userData)
{
}


下記のスレッドをPスレッドで作成して、Needs なんたらで、再描画が必要だと教えているんだけど。。
やっぱり、この方法では根本的に無理なのかなぁ。。(汗)

最初数回動くんだけど、そのあとは、マウスを動かさないと全く動いてくれない。。
もちろん、その間スレッドは、ぶんぶん回り続けていますよ。(^^;;

thread_main()
{
        int i=0;
	while(threadRun)
		{
               i++; printf("%d\n",i);
		usleep(30);
		HIViewSetNeedsDisplay( myHIView, TRUE);		// required repaint
		}
}

ちなみに、上記のNeedsなんたらをコメントアウトすると、全く再描画しなくなります。。(^^;;