Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
When creating a software texture, synchronize the surface with the te…
Browse files Browse the repository at this point in the history
…xture.

When creating a texture from a surface, synchronize the texture with the surface.
  • Loading branch information
slouken committed Jan 30, 2009
1 parent 285f35a commit d4eef17
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/video/SDL_renderer_sw.c
Expand Up @@ -380,6 +380,12 @@ SW_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
texture->driverdata =
SDL_CreateRGBSurface(0, texture->w, texture->h, bpp, Rmask, Gmask,
Bmask, Amask);
SDL_SetSurfaceColorMod(texture->driverdata, texture->r, texture->g,
texture->b);
SDL_SetSurfaceAlphaMod(texture->driverdata, texture->a);
SDL_SetSurfaceBlendMode(texture->driverdata, texture->blendMode);
SDL_SetSurfaceScaleMode(texture->driverdata, texture->scaleMode);

if (texture->access == SDL_TEXTUREACCESS_STATIC) {
SDL_SetSurfaceRLE(texture->driverdata, 1);
}
Expand Down
18 changes: 18 additions & 0 deletions src/video/SDL_video.c
Expand Up @@ -1635,6 +1635,24 @@ SDL_CreateTextureFromSurface(Uint32 format, SDL_Surface * surface)
}
}

{
Uint8 r, g, b, a;
int blendMode;
int scaleMode;

SDL_GetSurfaceColorMod(surface, &r, &g, &b);
SDL_SetTextureColorMod(textureID, r, g, b);

SDL_GetSurfaceAlphaMod(surface, &a);
SDL_SetTextureAlphaMod(textureID, a);

SDL_GetSurfaceBlendMode(surface, &blendMode);
SDL_SetTextureBlendMode(textureID, blendMode);

SDL_GetSurfaceScaleMode(surface, &scaleMode);
SDL_SetTextureScaleMode(textureID, scaleMode);
}

if (SDL_ISPIXELFORMAT_INDEXED(format) && fmt->palette) {
SDL_SetTexturePalette(textureID, fmt->palette->colors, 0,
fmt->palette->ncolors);
Expand Down

0 comments on commit d4eef17

Please sign in to comment.