Bitmap: Fix scaled blit from mega surface to texture
SDL's default blend mode for surfaces (SDL_BLENDMODE_BLEND) renders the source surface unusable for further use.
This commit is contained in:
parent
4864f63c6c
commit
b2631d4c23
|
@ -251,6 +251,7 @@ Bitmap::Bitmap(const char *filename)
|
||||||
/* Mega surface */
|
/* Mega surface */
|
||||||
p = new BitmapPrivate(this);
|
p = new BitmapPrivate(this);
|
||||||
p->megaSurface = imgSurf;
|
p->megaSurface = imgSurf;
|
||||||
|
SDL_SetSurfaceBlendMode(p->megaSurface, SDL_BLENDMODE_NONE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -429,9 +430,7 @@ void Bitmap::stretchBlt(const IntRect &destRect,
|
||||||
SDL_Surface *blitTemp =
|
SDL_Surface *blitTemp =
|
||||||
SDL_CreateRGBSurface(0, destRect.w, destRect.h, bpp, rMask, gMask, bMask, aMask);
|
SDL_CreateRGBSurface(0, destRect.w, destRect.h, bpp, rMask, gMask, bMask, aMask);
|
||||||
|
|
||||||
// FXIME: This is supposed to be a scaled blit, put SDL2 for some reason
|
SDL_BlitScaled(srcSurf, &srcRect, blitTemp, 0);
|
||||||
// makes the source surface unusable after BlitScaled() is called. Investigate!
|
|
||||||
SDL_BlitSurface(srcSurf, &srcRect, blitTemp, 0);
|
|
||||||
|
|
||||||
TEX::bind(p->gl.tex);
|
TEX::bind(p->gl.tex);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue