Fixed code which prevented the rendering of large animated background gifs. Return after the the call to PatBltTile only if PatBltTile returns PR_TRUE otherwise fall through to the slow tiling code. bug 133096 r=dcone sr=attinasi a=asa

This commit is contained in:
kmcclusk%netscape.com 2002-03-26 14:21:31 +00:00
Родитель 02cf2c6a37
Коммит 984f2e4d5f
1 изменённых файлов: 7 добавлений и 2 удалений

Просмотреть файл

@ -828,11 +828,16 @@ NS_IMETHODIMP nsImageWin::DrawTile(nsIRenderingContext &aContext,
} else if ( (imageScaledWidth>MAX_BUFFER_WIDTH) || (imageScaledHeight>MAX_BUFFER_HEIGHT)) {
if(PR_TRUE != gIsWinNT){
// CASE 2 -- THE PLATFORM IS NOT ON NT AND CAN NOT USE A PATBLT
useSlow = PR_TRUE;
useSlow = PR_TRUE;
} else {
if( (imageScaledWidth < MAX_BUFFER_WIDTH) || (imageScaledHeight < MAX_BUFFER_HEIGHT) ) {
// CASE 3 -- THE PLATFORM IS ON NT AND WE HAVE ONE LARGE AND ONE SMALL WIDTH AND HEIGHT
return ( PatBltTile(aContext,aSurface,aX0,aY0,aX1,aY1) );
if (PatBltTile(aContext,aSurface,aX0,aY0,aX1,aY1)) {
return(PR_TRUE);
}
// If PatBltTile returns PR_FALSE then we must drop through to the slow tiling
// code because either the width or height of the tiling buffer has been exceeded
useSlow = PR_TRUE;
} else {
// CASE 4 -- THE PLATFORM IS ON NT AND BOTH THE WIDTH AND HEIGHT ARE LARGE.
// -- THIS IS AN ODD CASE.. SEEMS PATBLT WITH LARGER BRUSHES HAS A DIFFICULT TIME