mirror of
https://github.com/reactos/reactos.git
synced 2024-08-06 03:14:36 +00:00
strechblt
gain very lite perfomen boost svn path=/trunk/; revision=15704
This commit is contained in:
parent
b4dae62ae5
commit
0a91aa1d44
|
@ -626,17 +626,20 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
int DesX;
|
||||
int DesY;
|
||||
int color;
|
||||
int zoomX;
|
||||
|
||||
DPRINT("DIB_16BPP_StretchBlt: Source BPP: %u, srcRect: (%d,%d)-(%d,%d), dstRect: (%d,%d)-(%d,%d)\n",
|
||||
BitsPerFormat(SourceSurf->iBitmapFormat), SourceRect->left, SourceRect->top, SourceRect->right, SourceRect->bottom,
|
||||
DestRect->left, DestRect->top, DestRect->right, DestRect->bottom);
|
||||
|
||||
SrcSizeY = SourceRect->bottom;
|
||||
SrcSizeX = SourceRect->right;
|
||||
SrcSizeY = SourceRect->bottom;
|
||||
SrcSizeX = SourceRect->right;
|
||||
|
||||
DesSizeY = DestRect->bottom;
|
||||
DesSizeX = DestRect->right;
|
||||
|
||||
DesSizeY = DestRect->bottom;
|
||||
DesSizeX = DestRect->right;
|
||||
|
||||
zoomX = DesSizeX / SrcSizeX;
|
||||
if (zoomX==0) zoomX=1;
|
||||
|
||||
switch(SourceSurf->iBitmapFormat)
|
||||
{
|
||||
|
@ -653,7 +656,7 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -664,9 +667,17 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if(DIB_1BPP_GetPixel(SourceSurf, sx, sy) == 0)
|
||||
{
|
||||
DIB_16BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
if (zoomX>1)
|
||||
DIB_16BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
else
|
||||
DIB_16BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
|
||||
} else {
|
||||
DIB_16BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
if (zoomX>1)
|
||||
DIB_16BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
else
|
||||
DIB_16BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -687,7 +698,7 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -697,7 +708,12 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_4BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_16BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_16BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_16BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -715,7 +731,7 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -725,7 +741,12 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_8BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_16BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_16BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_16BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -743,7 +764,7 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -753,7 +774,10 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_24BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_16BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
if (zoomX>1)
|
||||
DIB_16BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_16BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -771,7 +795,7 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -780,8 +804,11 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_16BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_32BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
color = DIB_32BPP_GetPixel(SourceSurf, sx, sy);
|
||||
if (zoomX>1)
|
||||
DIB_16BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_16BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -494,6 +494,7 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
int DesX;
|
||||
int DesY;
|
||||
int color;
|
||||
int zoomX;
|
||||
|
||||
SrcSizeY = SourceRect->bottom;
|
||||
SrcSizeX = SourceRect->right;
|
||||
|
@ -501,6 +502,10 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
DesSizeY = DestRect->bottom;
|
||||
DesSizeX = DestRect->right;
|
||||
|
||||
zoomX = DesSizeX / SrcSizeX;
|
||||
if (zoomX==0) zoomX=1;
|
||||
|
||||
|
||||
switch(SourceSurf->iBitmapFormat)
|
||||
{
|
||||
case BMF_1BPP:
|
||||
|
@ -518,7 +523,7 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -528,7 +533,11 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_1BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_1BPP_PutPixel(DestSurf, DesX, DesY, color);
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_1BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, color);
|
||||
else
|
||||
DIB_1BPP_PutPixel(DestSurf, DesX, DesY, color);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -548,7 +557,7 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -558,7 +567,12 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_4BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_1BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_1BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_1BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -576,7 +590,7 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -586,7 +600,12 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_8BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_1BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_1BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_1BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -604,7 +623,7 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -614,7 +633,12 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_16BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_1BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_1BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_1BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -632,7 +656,7 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -642,7 +666,12 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_24BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_1BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_1BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_1BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -659,7 +688,7 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -669,7 +698,11 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_32BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_1BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_1BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_1BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -318,12 +318,16 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
int DesX;
|
||||
int DesY;
|
||||
int color;
|
||||
int zoomX;
|
||||
|
||||
SrcSizeY = SourceRect->bottom;
|
||||
SrcSizeX = SourceRect->right;
|
||||
|
||||
DesSizeY = DestRect->bottom;
|
||||
DesSizeX = DestRect->right;
|
||||
DesSizeX = DestRect->right;
|
||||
|
||||
zoomX = DesSizeX / SrcSizeX;
|
||||
if (zoomX==0) zoomX=1;
|
||||
|
||||
switch(SourceSurf->iBitmapFormat)
|
||||
{
|
||||
|
@ -340,7 +344,7 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -352,8 +356,16 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if(DIB_1BPP_GetPixel(SourceSurf, sx, sy) == 0)
|
||||
{
|
||||
DIB_24BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
if (zoomX>1)
|
||||
DIB_24BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
else
|
||||
DIB_24BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
|
||||
} else {
|
||||
DIB_24BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
if (zoomX>1)
|
||||
DIB_24BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
else
|
||||
DIB_24BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -370,11 +382,9 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
else
|
||||
sy = (int) ((ULONG) DesSizeY * (ULONG) DesY) / ((ULONG) SrcSizeY);
|
||||
|
||||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -384,7 +394,10 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_4BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_24BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
if (zoomX>1)
|
||||
DIB_24BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_24BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -402,7 +415,7 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -412,7 +425,10 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_8BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_24BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
if (zoomX>1)
|
||||
DIB_24BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_24BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -430,7 +446,7 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -440,7 +456,10 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_16BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_24BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
if (zoomX>1)
|
||||
DIB_24BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_24BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -458,7 +477,7 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -468,7 +487,10 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_24BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_24BPP_PutPixel(DestSurf, DesX, DesY, color);
|
||||
if (zoomX>1)
|
||||
DIB_24BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, color);
|
||||
else
|
||||
DIB_24BPP_PutPixel(DestSurf, DesX, DesY, color);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -486,7 +508,7 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -496,7 +518,11 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_32BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_24BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_24BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_24BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -560,6 +560,8 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
int DesX;
|
||||
int DesY;
|
||||
int color;
|
||||
int zoomX;
|
||||
|
||||
|
||||
DPRINT("DIB_32BPP_StretchBlt: Source BPP: %u, srcRect: (%d,%d)-(%d,%d), dstRect: (%d,%d)-(%d,%d)\n",
|
||||
BitsPerFormat(SourceSurf->iBitmapFormat), SourceRect->left, SourceRect->top, SourceRect->right, SourceRect->bottom,
|
||||
|
@ -569,8 +571,11 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
SrcSizeX = SourceRect->right;
|
||||
|
||||
DesSizeY = DestRect->bottom;
|
||||
DesSizeX = DestRect->right;
|
||||
DesSizeX = DestRect->right;
|
||||
|
||||
zoomX = DesSizeX / SrcSizeX;
|
||||
if (zoomX==0) zoomX=1;
|
||||
|
||||
switch(SourceSurf->iBitmapFormat)
|
||||
{
|
||||
case BMF_1BPP:
|
||||
|
@ -586,7 +591,7 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -597,9 +602,16 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if(DIB_1BPP_GetPixel(SourceSurf, sx, sy) == 0)
|
||||
{
|
||||
DIB_32BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
if (zoomX>1)
|
||||
DIB_32BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
else
|
||||
DIB_32BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
|
||||
} else {
|
||||
DIB_32BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
if (zoomX>1)
|
||||
DIB_32BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
else
|
||||
DIB_32BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -620,7 +632,7 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -629,8 +641,14 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sx > SourceRect->right) break;
|
||||
|
||||
|
||||
color = DIB_4BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_32BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_32BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_32BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -648,7 +666,7 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -658,7 +676,11 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_8BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_32BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_32BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_32BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -676,7 +698,7 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -686,7 +708,10 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_16BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_32BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
if (zoomX>1)
|
||||
DIB_32BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_32BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -704,7 +729,7 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -714,7 +739,10 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_24BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_32BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
if (zoomX>1)
|
||||
DIB_32BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_32BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -372,12 +372,16 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
int DesX;
|
||||
int DesY;
|
||||
int color;
|
||||
int zoomX;
|
||||
|
||||
SrcSizeY = SourceRect->bottom;
|
||||
SrcSizeX = SourceRect->right;
|
||||
|
||||
DesSizeY = DestRect->bottom;
|
||||
DesSizeX = DestRect->right;
|
||||
DesSizeX = DestRect->right;
|
||||
|
||||
zoomX = DesSizeX / SrcSizeX;
|
||||
if (zoomX==0) zoomX=1;
|
||||
|
||||
switch(SourceSurf->iBitmapFormat)
|
||||
{
|
||||
|
@ -394,7 +398,7 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -405,9 +409,17 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if(DIB_1BPP_GetPixel(SourceSurf, sx, sy) == 0)
|
||||
{
|
||||
DIB_4BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
} else {
|
||||
DIB_4BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
if (zoomX>1)
|
||||
DIB_4BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
else
|
||||
DIB_4BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
|
||||
} else {
|
||||
if (zoomX>1)
|
||||
DIB_4BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
else
|
||||
DIB_4BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -428,7 +440,7 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -438,7 +450,12 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_4BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_4BPP_PutPixel(DestSurf, DesX, DesY, color);
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_4BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, color);
|
||||
else
|
||||
DIB_4BPP_PutPixel(DestSurf, DesX, DesY, color);
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -456,7 +473,7 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -466,7 +483,12 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_8BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_4BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_4BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_4BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -484,7 +506,7 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -494,7 +516,12 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_16BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_4BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_4BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_4BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -512,7 +539,7 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -522,7 +549,12 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_24BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_4BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_4BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_4BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -540,7 +572,7 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -550,7 +582,12 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_32BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_4BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_4BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_4BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -550,11 +550,21 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
int DesX;
|
||||
int DesY;
|
||||
int color;
|
||||
int zoomX;
|
||||
|
||||
DPRINT("DIB_8BPP_StretchBlt: Source BPP: %u, srcRect: (%d,%d)-(%d,%d), dstRect: (%d,%d)-(%d,%d)\n",
|
||||
BitsPerFormat(SourceSurf->iBitmapFormat), SourceRect->left, SourceRect->top, SourceRect->right, SourceRect->bottom,
|
||||
DestRect->left, DestRect->top, DestRect->right, DestRect->bottom);
|
||||
|
||||
SrcSizeY = SourceRect->bottom;
|
||||
SrcSizeX = SourceRect->right;
|
||||
|
||||
DesSizeY = DestRect->bottom;
|
||||
DesSizeX = DestRect->right;
|
||||
|
||||
zoomX = DesSizeX / SrcSizeX;
|
||||
if (zoomX==0) zoomX=1;
|
||||
|
||||
switch(SourceSurf->iBitmapFormat)
|
||||
{
|
||||
case BMF_1BPP:
|
||||
|
@ -570,7 +580,7 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -581,9 +591,15 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if(DIB_1BPP_GetPixel(SourceSurf, sx, sy) == 0)
|
||||
{
|
||||
DIB_8BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
if (zoomX>1)
|
||||
DIB_8BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
else
|
||||
DIB_8BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 0));
|
||||
} else {
|
||||
DIB_8BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
if (zoomX>1)
|
||||
DIB_8BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
else
|
||||
DIB_8BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -604,7 +620,7 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -614,7 +630,11 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_4BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_8BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_8BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_8BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -632,7 +652,7 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -642,7 +662,12 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_16BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_8BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_8BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_8BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -660,7 +685,7 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -670,7 +695,12 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_24BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_8BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_8BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_8BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -688,7 +718,7 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
|
||||
if (sy > SourceRect->bottom) break;
|
||||
|
||||
for (DesX=0; DesX<DestRect->right; DesX++)
|
||||
for (DesX=0; DesX<DestRect->right; DesX+=zoomX)
|
||||
{
|
||||
if (DesSizeX>SrcSizeX)
|
||||
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
|
||||
|
@ -698,7 +728,12 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
|||
if (sx > SourceRect->right) break;
|
||||
|
||||
color = DIB_32BPP_GetPixel(SourceSurf, sx, sy);
|
||||
DIB_8BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
if (zoomX>1)
|
||||
DIB_8BPP_HLine(DestSurf, DesX, DesX + zoomX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
else
|
||||
DIB_8BPP_PutPixel(DestSurf, DesX, DesY, XLATEOBJ_iXlate(ColorTranslation, color));
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue