comparison src/video/SDL_video.c @ 5141:da10636e5eca

Making the API simpler, scaling is always defined as linear interpolation and should be supported as much as possible on all renderers.
author Sam Lantinga <slouken@libsdl.org>
date Mon, 31 Jan 2011 22:44:43 -0800
parents dc0dfdd58f27
children e743b9c3f6d6
comparison
equal deleted inserted replaced
5140:e594f07297a9 5141:da10636e5eca
1959 } 1959 }
1960 1960
1961 { 1961 {
1962 Uint8 r, g, b, a; 1962 Uint8 r, g, b, a;
1963 SDL_BlendMode blendMode; 1963 SDL_BlendMode blendMode;
1964 SDL_ScaleMode scaleMode;
1965 1964
1966 SDL_GetSurfaceColorMod(surface, &r, &g, &b); 1965 SDL_GetSurfaceColorMod(surface, &r, &g, &b);
1967 SDL_SetTextureColorMod(texture, r, g, b); 1966 SDL_SetTextureColorMod(texture, r, g, b);
1968 1967
1969 SDL_GetSurfaceAlphaMod(surface, &a); 1968 SDL_GetSurfaceAlphaMod(surface, &a);
1974 SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND); 1973 SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
1975 } else { 1974 } else {
1976 SDL_GetSurfaceBlendMode(surface, &blendMode); 1975 SDL_GetSurfaceBlendMode(surface, &blendMode);
1977 SDL_SetTextureBlendMode(texture, blendMode); 1976 SDL_SetTextureBlendMode(texture, blendMode);
1978 } 1977 }
1979
1980 SDL_GetSurfaceScaleMode(surface, &scaleMode);
1981 SDL_SetTextureScaleMode(texture, scaleMode);
1982 } 1978 }
1983 1979
1984 if (SDL_ISPIXELFORMAT_INDEXED(format) && fmt->palette) { 1980 if (SDL_ISPIXELFORMAT_INDEXED(format) && fmt->palette) {
1985 SDL_SetTexturePalette(texture, fmt->palette->colors, 0, 1981 SDL_SetTexturePalette(texture, fmt->palette->colors, 0,
1986 fmt->palette->ncolors); 1982 fmt->palette->ncolors);
2155 { 2151 {
2156 CHECK_TEXTURE_MAGIC(texture, -1); 2152 CHECK_TEXTURE_MAGIC(texture, -1);
2157 2153
2158 if (blendMode) { 2154 if (blendMode) {
2159 *blendMode = texture->blendMode; 2155 *blendMode = texture->blendMode;
2160 }
2161 return 0;
2162 }
2163
2164 int
2165 SDL_SetTextureScaleMode(SDL_Texture * texture, SDL_ScaleMode scaleMode)
2166 {
2167 SDL_Renderer *renderer;
2168
2169 CHECK_TEXTURE_MAGIC(texture, -1);
2170
2171 renderer = texture->renderer;
2172 if (!renderer->SetTextureScaleMode) {
2173 SDL_Unsupported();
2174 return -1;
2175 }
2176 texture->scaleMode = scaleMode;
2177 return renderer->SetTextureScaleMode(renderer, texture);
2178 }
2179
2180 int
2181 SDL_GetTextureScaleMode(SDL_Texture * texture, SDL_ScaleMode *scaleMode)
2182 {
2183 CHECK_TEXTURE_MAGIC(texture, -1);
2184
2185 if (scaleMode) {
2186 *scaleMode = texture->scaleMode;
2187 } 2156 }
2188 return 0; 2157 return 0;
2189 } 2158 }
2190 2159
2191 int 2160 int