Mercurial > sdl-ios-xcode
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 |