Fix a bugin strechblt. it can now zoom in or out in any bpp

still this need todo
/* FIXME :  MaskOrigin, BrushOrigin, ClipRegion, Mode ? */
/* This is a reference implementation, it hasn't been optimized for speed */



svn path=/trunk/; revision=15701
This commit is contained in:
Magnus Olsen 2005-05-31 15:19:10 +00:00
parent 63843d944f
commit 64d4d57449
6 changed files with 33 additions and 33 deletions

View file

@ -655,7 +655,7 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -689,7 +689,7 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -717,7 +717,7 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -745,7 +745,7 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -773,7 +773,7 @@ BOOLEAN DIB_16BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);

View file

@ -520,7 +520,7 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -550,7 +550,7 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -578,7 +578,7 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -606,7 +606,7 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -634,7 +634,7 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -661,7 +661,7 @@ BOOLEAN DIB_1BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);

View file

@ -342,7 +342,7 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -376,7 +376,7 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -404,7 +404,7 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -432,7 +432,7 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -460,7 +460,7 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -488,7 +488,7 @@ BOOLEAN DIB_24BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);

View file

@ -588,7 +588,7 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -622,7 +622,7 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -650,7 +650,7 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -678,7 +678,7 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -706,7 +706,7 @@ BOOLEAN DIB_32BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);

View file

@ -396,7 +396,7 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -430,7 +430,7 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -458,7 +458,7 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -486,7 +486,7 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -514,7 +514,7 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -542,7 +542,7 @@ BOOLEAN DIB_4BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);

View file

@ -572,7 +572,7 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -606,7 +606,7 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -634,7 +634,7 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -662,7 +662,7 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);
@ -690,7 +690,7 @@ BOOLEAN DIB_8BPP_StretchBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
for (DesX=0; DesX<DestRect->right; DesX++)
{
if (DesSizeY>SrcSizeY)
if (DesSizeX>SrcSizeX)
sx = (int) ((ULONG) SrcSizeX * (ULONG) DesX) / ((ULONG) DesSizeX);
else
sx = (int) ((ULONG) DesSizeX * (ULONG) DesX) / ((ULONG) SrcSizeX);