おはようございます。

色が違うのは治ったみたい。 どうやら、BGR_という並び方だった。
でも、これはIntelプロセッサの場合で、PPCだと変わるかも?
あとは、ウインドウの背景が白色なのが気になるなぁ。。


画面を真ん中に持ってくるには、SETSCRVRAM... などのマクロのx、y座標に下駄をはかせれば、いけるらしい。。


そうそう、スクロールするときは、オフスクリーンが必要になるんだけど、その処理を考えるのが面倒だなぁ。。(^^;;
今のところ、スクロールしてない画像を作成してから、4分割でbltしている。
これを、画像作成時点で、スクロールしている画像を作ることが出来れば、オフスクリーンは不要になるんだけど。。。
帰って遅くなりそう。。(^^;


screen サーフェスと、surface1 サーフェスは、同じポインタ値です。
だから、描画プログラムは、surface1に書いているつもりだけど、実際には、screenに書いている。
PutImage関数で、ほかの環境では、surface1から、screen に明示的に転送が行われるんだけど、QuickDrawでは行われず、バッファをflush しているだけです。
下記のようなイメージですね。

   描画ルーチン-> surface1 (screen)

スクロールするばあいは、screen とsurface1の結びつきを解消して、screen は、surface2 と結びつけて、
下記のような形になるとか?

   描画ルーチン-> surface1 --> surface2 (screen )

surface1 とsurface2のポインタを付け替えるの?
うーん。ややこしい!(^^;


スクロールの座標指定のポートに、値が送られてきたときに、1ドットでもスクロールしていたら、ポインタを入れ替えて、スクロールモードに。。スクロールなしになったら、ポインタを入れ替えて、非スクロールモードにする必要があるよね。。(汗)

あと、Refresh.c ですが、描画先のメモリーを、XBufというグローバル変数に依存しているのもなんとかしたいなぁ。。
ちゃんと、Surfaceに描画する感じにしておいたほうがいいと思う。。