Koike Kazuhiko
kazhi****@mozil*****
2003年 8月 13日 (水) 07:25:41 JST
On 08/12/2003 06:33 PM, Chisato Yamauchi wrote: > ここなんですけど,以下のようにするとどうなりますか? > > XAACacheInfoPtr pCache = > (*infoRec->CacheTile)(infoRec->pScrn, pPix); > if(pCache) (*infoRec->FillCacheBltRects)(infoRec->pScrn, GXcopy, ~0, > nBox, pBox, xorg, yorg, pCache); > else goto next; > return; > } > next: > if(infoRec->FillImageWriteRects && > !(infoRec->FillImageWriteRectsFlags & NO_GXCOPY)) { > > > pCache が NULL の時に return で帰らずに次の処理に飛ばす,と. if (pCache) { (*infoRec->FillCacheBltRects)(infoRec->pScrn, GXcopy, ~0, nBox, pBox, xorg, yorg, pCache); return; } これと同じですね。 描画の問題がなくなりました。いい感じです。pCacheがNULLの場合でも以下のif 文の中が実行されているようです。 BAILOUT: if(what == PW_BACKGROUND) { XAA_SCREEN_PROLOGUE (pScreen, PaintWindowBackground); (*pScreen->PaintWindowBackground) (pWin, prgn, what); XAA_SCREEN_EPILOGUE(pScreen, PaintWindowBackground, XAAPaintWindow); } else { -- 小池和彦@もじら組 http://www.mozilla.gr.jp/~kazhik/