From 48e79352b6e81cf82d8a3e11946b5bdcefd3780a Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 31 Jan 2011 22:44:43 -0800 Subject: [PATCH] Making the API simpler, scaling is always defined as linear interpolation and should be supported as much as possible on all renderers. --- Makefile.in | 1 - include/SDL_compat.h | 8 --- include/SDL_scalemode.h | 69 ------------------------ include/SDL_surface.h | 32 ----------- include/SDL_video.h | 32 ----------- src/video/SDL_renderer_gl.c | 49 +---------------- src/video/SDL_renderer_gles.c | 44 +-------------- src/video/SDL_renderer_sw.c | 13 ----- src/video/SDL_surface.c | 58 -------------------- src/video/SDL_sysvideo.h | 3 -- src/video/SDL_video.c | 31 ----------- src/video/directfb/SDL_DirectFB_render.c | 5 -- src/video/nds/SDL_ndsrender.c | 12 ----- src/video/photon/SDL_photon_render.c | 65 ---------------------- src/video/qnxgf/SDL_gf_render.c | 2 - src/video/windows/SDL_ceddrawrender.c | 17 ------ src/video/windows/SDL_d3drender.c | 47 ++-------------- src/video/windows/SDL_gapirender.c | 2 - src/video/windows/SDL_windowsvideo.c | 1 - src/video/x11/SDL_x11video.c | 1 - test/common.c | 37 ------------- test/testsprite2.c | 24 +-------- 22 files changed, 9 insertions(+), 544 deletions(-) delete mode 100644 include/SDL_scalemode.h diff --git a/Makefile.in b/Makefile.in index bb0920ab6..76d3bec03 100644 --- a/Makefile.in +++ b/Makefile.in @@ -71,7 +71,6 @@ HDRS = \ SDL_rect.h \ SDL_revision.h \ SDL_rwops.h \ - SDL_scalemode.h \ SDL_scancode.h \ SDL_shape.h \ SDL_stdinc.h \ diff --git a/include/SDL_compat.h b/include/SDL_compat.h index 1e2a53917..15a8382be 100644 --- a/include/SDL_compat.h +++ b/include/SDL_compat.h @@ -208,14 +208,6 @@ typedef enum SDL_GRAB_ON = 1 } SDL_GrabMode; -typedef enum -{ - SDL_TEXTURESCALEMODE_NONE = SDL_SCALEMODE_NONE, - SDL_TEXTURESCALEMODE_FAST = SDL_SCALEMODE_FAST, - SDL_TEXTURESCALEMODE_SLOW = SDL_SCALEMODE_SLOW, - SDL_TEXTURESCALEMODE_BEST = SDL_SCALEMODE_BEST -} SDL_TextureScaleMode; - struct SDL_SysWMinfo; /** diff --git a/include/SDL_scalemode.h b/include/SDL_scalemode.h deleted file mode 100644 index a658c68bb..000000000 --- a/include/SDL_scalemode.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -/** - * \file SDL_scalemode.h - * - * Header file declaring the SDL_ScaleMode enumeration - */ - -#ifndef _SDL_scalemode_h -#define _SDL_scalemode_h - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -extern "C" { -/* *INDENT-ON* */ -#endif - -/** - * \brief The texture scale mode used in SDL_RenderCopy(). - */ -typedef enum -{ - SDL_SCALEMODE_NONE = 0x00000000, /**< No scaling, rectangles must - match dimensions */ - - SDL_SCALEMODE_FAST = 0x00000001, /**< Point sampling or - equivalent algorithm */ - - SDL_SCALEMODE_SLOW = 0x00000002, /**< Linear filtering or - equivalent algorithm */ - - SDL_SCALEMODE_BEST = 0x00000004 /**< Bicubic filtering or - equivalent algorithm */ -} SDL_ScaleMode; - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -} -/* *INDENT-ON* */ -#endif -#include "close_code.h" - -#endif /* _SDL_video_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/include/SDL_surface.h b/include/SDL_surface.h index d8a3f4ff4..27f78ede3 100644 --- a/include/SDL_surface.h +++ b/include/SDL_surface.h @@ -33,7 +33,6 @@ #include "SDL_pixels.h" #include "SDL_rect.h" #include "SDL_blendmode.h" -#include "SDL_scalemode.h" #include "SDL_rwops.h" #include "begin_code.h" @@ -317,37 +316,6 @@ extern DECLSPEC int SDLCALL SDL_SetSurfaceBlendMode(SDL_Surface * surface, extern DECLSPEC int SDLCALL SDL_GetSurfaceBlendMode(SDL_Surface * surface, SDL_BlendMode *blendMode); -/** - * \brief Set the scale mode used for blit operations. - * - * \param surface The surface to update. - * \param scaleMode ::SDL_ScaleMode to use for blit scaling. - * - * \return 0 on success, or -1 if the surface is not valid or the scale mode is - * not supported. - * - * \note If the scale mode is not supported, the closest supported mode is - * chosen. Currently only ::SDL_TEXTURESCALEMODE_FAST is supported on - * surfaces. - * - * \sa SDL_GetSurfaceScaleMode() - */ -extern DECLSPEC int SDLCALL SDL_SetSurfaceScaleMode(SDL_Surface * surface, - SDL_ScaleMode scaleMode); - -/** - * \brief Get the scale mode used for blit operations. - * - * \param surface The surface to query. - * \param scaleMode A pointer filled in with the current scale mode. - * - * \return 0 on success, or -1 if the surface is not valid. - * - * \sa SDL_SetSurfaceScaleMode() - */ -extern DECLSPEC int SDLCALL SDL_GetSurfaceScaleMode(SDL_Surface * surface, - SDL_ScaleMode *scaleMode); - /** * Sets the clipping rectangle for the destination surface in a blit. * diff --git a/include/SDL_video.h b/include/SDL_video.h index a992a4cac..d8c187cf1 100644 --- a/include/SDL_video.h +++ b/include/SDL_video.h @@ -33,7 +33,6 @@ #include "SDL_pixels.h" #include "SDL_rect.h" #include "SDL_blendmode.h" -#include "SDL_scalemode.h" #include "SDL_surface.h" #include "begin_code.h" @@ -189,7 +188,6 @@ typedef struct SDL_RendererInfo Uint32 flags; /**< Supported ::SDL_RendererFlags */ Uint32 mod_modes; /**< A mask of supported channel modulation */ Uint32 blend_modes; /**< A mask of supported blend modes */ - Uint32 scale_modes; /**< A mask of supported scale modes */ Uint32 num_texture_formats; /**< The number of available texture formats */ Uint32 texture_formats[50]; /**< The available texture formats */ int max_texture_width; /**< The maximimum texture width */ @@ -968,36 +966,6 @@ extern DECLSPEC int SDLCALL SDL_SetTextureBlendMode(SDL_Texture * texture, extern DECLSPEC int SDLCALL SDL_GetTextureBlendMode(SDL_Texture * texture, SDL_BlendMode *blendMode); -/** - * \brief Set the scale mode used for texture copy operations. - * - * \param texture The texture to update. - * \param scaleMode ::SDL_ScaleMode to use for texture scaling. - * - * \return 0 on success, or -1 if the texture is not valid or the scale mode is - * not supported. - * - * \note If the scale mode is not supported, the closest supported mode is - * chosen. - * - * \sa SDL_GetTextureScaleMode() - */ -extern DECLSPEC int SDLCALL SDL_SetTextureScaleMode(SDL_Texture * texture, - SDL_ScaleMode scaleMode); - -/** - * \brief Get the scale mode used for texture copy operations. - * - * \param texture The texture to query. - * \param scaleMode A pointer filled in with the current scale mode. - * - * \return 0 on success, or -1 if the texture is not valid. - * - * \sa SDL_SetTextureScaleMode() - */ -extern DECLSPEC int SDLCALL SDL_GetTextureScaleMode(SDL_Texture * texture, - SDL_ScaleMode *scaleMode); - /** * \brief Update the given texture rectangle with new pixel data. * diff --git a/src/video/SDL_renderer_gl.c b/src/video/SDL_renderer_gl.c index e3938b1af..7dec03f26 100644 --- a/src/video/SDL_renderer_gl.c +++ b/src/video/SDL_renderer_gl.c @@ -85,8 +85,6 @@ static int GL_SetTextureAlphaMod(SDL_Renderer * renderer, SDL_Texture * texture); static int GL_SetTextureBlendMode(SDL_Renderer * renderer, SDL_Texture * texture); -static int GL_SetTextureScaleMode(SDL_Renderer * renderer, - SDL_Texture * texture); static int GL_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, const void *pixels, int pitch); @@ -126,7 +124,6 @@ SDL_RenderDriver GL_RenderDriver = { SDL_TEXTUREMODULATE_ALPHA), (SDL_BLENDMODE_NONE | SDL_BLENDMODE_MASK | SDL_BLENDMODE_BLEND | SDL_BLENDMODE_ADD | SDL_BLENDMODE_MOD), - (SDL_SCALEMODE_NONE | SDL_SCALEMODE_FAST | SDL_SCALEMODE_SLOW), 15, { SDL_PIXELFORMAT_INDEX1LSB, @@ -159,7 +156,6 @@ typedef struct SDL_bool GL_MESA_ycbcr_texture_supported; SDL_bool GL_ARB_fragment_program_supported; int blendMode; - int scaleMode; /* OpenGL functions */ #define SDL_PROC(ret,func,params) ret (APIENTRY *func) params; @@ -303,7 +299,6 @@ GL_CreateRenderer(SDL_Window * window, Uint32 flags) renderer->SetTextureColorMod = GL_SetTextureColorMod; renderer->SetTextureAlphaMod = GL_SetTextureAlphaMod; renderer->SetTextureBlendMode = GL_SetTextureBlendMode; - renderer->SetTextureScaleMode = GL_SetTextureScaleMode; renderer->UpdateTexture = GL_UpdateTexture; renderer->LockTexture = GL_LockTexture; renderer->UnlockTexture = GL_UnlockTexture; @@ -422,7 +417,6 @@ GL_CreateRenderer(SDL_Window * window, Uint32 flags) /* Set up parameters for rendering */ data->blendMode = -1; - data->scaleMode = -1; data->glDisable(GL_DEPTH_TEST); data->glDisable(GL_CULL_FACE); /* This ended up causing video discrepancies between OpenGL and Direct3D */ @@ -842,9 +836,9 @@ GL_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture) renderdata->glEnable(data->type); renderdata->glBindTexture(data->type, data->texture); renderdata->glTexParameteri(data->type, GL_TEXTURE_MIN_FILTER, - GL_NEAREST); + GL_LINEAR); renderdata->glTexParameteri(data->type, GL_TEXTURE_MAG_FILTER, - GL_NEAREST); + GL_LINEAR); renderdata->glTexParameteri(data->type, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); renderdata->glTexParameteri(data->type, GL_TEXTURE_WRAP_T, @@ -1000,25 +994,6 @@ GL_SetTextureBlendMode(SDL_Renderer * renderer, SDL_Texture * texture) } } -static int -GL_SetTextureScaleMode(SDL_Renderer * renderer, SDL_Texture * texture) -{ - switch (texture->scaleMode) { - case SDL_SCALEMODE_NONE: - case SDL_SCALEMODE_FAST: - case SDL_SCALEMODE_SLOW: - return 0; - case SDL_SCALEMODE_BEST: - SDL_Unsupported(); - texture->scaleMode = SDL_SCALEMODE_SLOW; - return -1; - default: - SDL_Unsupported(); - texture->scaleMode = SDL_SCALEMODE_NONE; - return -1; - } -} - static int GL_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, const void *pixels, int pitch) @@ -1363,26 +1338,6 @@ GL_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture, } } - if (texture->scaleMode != data->scaleMode) { - switch (texture->scaleMode) { - case SDL_SCALEMODE_NONE: - case SDL_SCALEMODE_FAST: - data->glTexParameteri(texturedata->type, GL_TEXTURE_MIN_FILTER, - GL_NEAREST); - data->glTexParameteri(texturedata->type, GL_TEXTURE_MAG_FILTER, - GL_NEAREST); - break; - case SDL_SCALEMODE_SLOW: - case SDL_SCALEMODE_BEST: - data->glTexParameteri(texturedata->type, GL_TEXTURE_MIN_FILTER, - GL_LINEAR); - data->glTexParameteri(texturedata->type, GL_TEXTURE_MAG_FILTER, - GL_LINEAR); - break; - } - data->scaleMode = texture->scaleMode; - } - if (shader) { data->glEnable(GL_FRAGMENT_PROGRAM_ARB); data->glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, shader); diff --git a/src/video/SDL_renderer_gles.c b/src/video/SDL_renderer_gles.c index b7d4ebfa7..b174a8244 100644 --- a/src/video/SDL_renderer_gles.c +++ b/src/video/SDL_renderer_gles.c @@ -73,8 +73,6 @@ static int GLES_SetTextureAlphaMod(SDL_Renderer * renderer, SDL_Texture * texture); static int GLES_SetTextureBlendMode(SDL_Renderer * renderer, SDL_Texture * texture); -static int GLES_SetTextureScaleMode(SDL_Renderer * renderer, - SDL_Texture * texture); static int GLES_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, const void *pixels, int pitch); @@ -112,7 +110,6 @@ SDL_RenderDriver GL_ES_RenderDriver = { SDL_TEXTUREMODULATE_ALPHA), (SDL_BLENDMODE_NONE | SDL_BLENDMODE_MASK | SDL_BLENDMODE_BLEND | SDL_BLENDMODE_ADD | SDL_BLENDMODE_MOD), - (SDL_SCALEMODE_NONE | SDL_SCALEMODE_FAST | SDL_SCALEMODE_SLOW), 6, { /* OpenGL ES 1.x supported formats list */ SDL_PIXELFORMAT_RGBA4444, @@ -241,7 +238,6 @@ GLES_CreateRenderer(SDL_Window * window, Uint32 flags) renderer->SetTextureColorMod = GLES_SetTextureColorMod; renderer->SetTextureAlphaMod = GLES_SetTextureAlphaMod; renderer->SetTextureBlendMode = GLES_SetTextureBlendMode; - renderer->SetTextureScaleMode = GLES_SetTextureScaleMode; renderer->UpdateTexture = GLES_UpdateTexture; renderer->LockTexture = GLES_LockTexture; renderer->UnlockTexture = GLES_UnlockTexture; @@ -449,9 +445,9 @@ GLES_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture) data->formattype = type; renderdata->glBindTexture(data->type, data->texture); renderdata->glTexParameteri(data->type, GL_TEXTURE_MIN_FILTER, - GL_NEAREST); + GL_LINEAR); renderdata->glTexParameteri(data->type, GL_TEXTURE_MAG_FILTER, - GL_NEAREST); + GL_LINEAR); renderdata->glTexParameteri(data->type, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); renderdata->glTexParameteri(data->type, GL_TEXTURE_WRAP_T, @@ -534,25 +530,6 @@ GLES_SetTextureBlendMode(SDL_Renderer * renderer, SDL_Texture * texture) } } -static int -GLES_SetTextureScaleMode(SDL_Renderer * renderer, SDL_Texture * texture) -{ - switch (texture->scaleMode) { - case SDL_SCALEMODE_NONE: - case SDL_SCALEMODE_FAST: - case SDL_SCALEMODE_SLOW: - return 0; - case SDL_SCALEMODE_BEST: - SDL_Unsupported(); - texture->scaleMode = SDL_SCALEMODE_SLOW; - return -1; - default: - SDL_Unsupported(); - texture->scaleMode = SDL_SCALEMODE_NONE; - return -1; - } -} - static int GLES_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, const void *pixels, int pitch) @@ -878,23 +855,6 @@ GLES_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture, GLES_SetBlendMode(data, texture->blendMode, 0); - switch (texture->scaleMode) { - case SDL_SCALEMODE_NONE: - case SDL_SCALEMODE_FAST: - data->glTexParameteri(texturedata->type, GL_TEXTURE_MIN_FILTER, - GL_NEAREST); - data->glTexParameteri(texturedata->type, GL_TEXTURE_MAG_FILTER, - GL_NEAREST); - break; - case SDL_SCALEMODE_SLOW: - case SDL_SCALEMODE_BEST: - data->glTexParameteri(texturedata->type, GL_TEXTURE_MIN_FILTER, - GL_LINEAR); - data->glTexParameteri(texturedata->type, GL_TEXTURE_MAG_FILTER, - GL_LINEAR); - break; - } - if (data->GL_OES_draw_texture_supported && data->useDrawTexture) { /* this code is a little funny because the viewport is upside down vs SDL's coordinate system */ SDL_Window *window = renderer->window; diff --git a/src/video/SDL_renderer_sw.c b/src/video/SDL_renderer_sw.c index 604584f20..79f4919bd 100644 --- a/src/video/SDL_renderer_sw.c +++ b/src/video/SDL_renderer_sw.c @@ -51,8 +51,6 @@ static int SW_SetTextureAlphaMod(SDL_Renderer * renderer, SDL_Texture * texture); static int SW_SetTextureBlendMode(SDL_Renderer * renderer, SDL_Texture * texture); -static int SW_SetTextureScaleMode(SDL_Renderer * renderer, - SDL_Texture * texture); static int SW_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, const void *pixels, int pitch); @@ -90,7 +88,6 @@ SDL_RenderDriver SW_RenderDriver = { SDL_TEXTUREMODULATE_ALPHA), (SDL_BLENDMODE_NONE | SDL_BLENDMODE_MASK | SDL_BLENDMODE_BLEND | SDL_BLENDMODE_ADD | SDL_BLENDMODE_MOD), - (SDL_SCALEMODE_NONE | SDL_SCALEMODE_FAST), 14, { SDL_PIXELFORMAT_INDEX8, @@ -180,7 +177,6 @@ Setup_SoftwareRenderer(SDL_Renderer * renderer) renderer->SetTextureColorMod = SW_SetTextureColorMod; renderer->SetTextureAlphaMod = SW_SetTextureAlphaMod; renderer->SetTextureBlendMode = SW_SetTextureBlendMode; - renderer->SetTextureScaleMode = SW_SetTextureScaleMode; renderer->UpdateTexture = SW_UpdateTexture; renderer->LockTexture = SW_LockTexture; renderer->UnlockTexture = SW_UnlockTexture; @@ -188,7 +184,6 @@ Setup_SoftwareRenderer(SDL_Renderer * renderer) renderer->info.mod_modes = SW_RenderDriver.info.mod_modes; renderer->info.blend_modes = SW_RenderDriver.info.blend_modes; - renderer->info.scale_modes = SW_RenderDriver.info.scale_modes; renderer->info.num_texture_formats = SW_RenderDriver.info.num_texture_formats; SDL_memcpy(renderer->info.texture_formats, @@ -396,7 +391,6 @@ SW_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture) 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); @@ -479,13 +473,6 @@ SW_SetTextureBlendMode(SDL_Renderer * renderer, SDL_Texture * texture) return SDL_SetSurfaceBlendMode(surface, texture->blendMode); } -static int -SW_SetTextureScaleMode(SDL_Renderer * renderer, SDL_Texture * texture) -{ - SDL_Surface *surface = (SDL_Surface *) texture->driverdata; - return SDL_SetSurfaceScaleMode(surface, texture->scaleMode); -} - static int SW_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, const void *pixels, int pitch) diff --git a/src/video/SDL_surface.c b/src/video/SDL_surface.c index 2e2f583b7..afb3c242e 100644 --- a/src/video/SDL_surface.c +++ b/src/video/SDL_surface.c @@ -518,64 +518,6 @@ SDL_GetSurfaceBlendMode(SDL_Surface * surface, SDL_BlendMode *blendMode) return 0; } -int -SDL_SetSurfaceScaleMode(SDL_Surface * surface, SDL_ScaleMode scaleMode) -{ - int flags, status; - - if (!surface) { - return -1; - } - - status = 0; - flags = surface->map->info.flags; - surface->map->info.flags &= ~(SDL_COPY_NEAREST); - switch (scaleMode) { - case SDL_SCALEMODE_NONE: - break; - case SDL_SCALEMODE_FAST: - surface->map->info.flags |= SDL_COPY_NEAREST; - break; - case SDL_SCALEMODE_SLOW: - case SDL_SCALEMODE_BEST: - SDL_Unsupported(); - surface->map->info.flags |= SDL_COPY_NEAREST; - status = -1; - break; - default: - SDL_Unsupported(); - status = -1; - break; - } - - if (surface->map->info.flags != flags) { - SDL_InvalidateMap(surface->map); - } - return status; -} - -int -SDL_GetSurfaceScaleMode(SDL_Surface * surface, SDL_ScaleMode *scaleMode) -{ - if (!surface) { - return -1; - } - - if (!scaleMode) { - return 0; - } - - switch (surface->map->info.flags & SDL_COPY_NEAREST) { - case SDL_COPY_NEAREST: - *scaleMode = SDL_SCALEMODE_FAST; - break; - default: - *scaleMode = SDL_SCALEMODE_NONE; - break; - } - return 0; -} - SDL_bool SDL_SetClipRect(SDL_Surface * surface, const SDL_Rect * rect) { diff --git a/src/video/SDL_sysvideo.h b/src/video/SDL_sysvideo.h index 260dfedab..3234e7823 100644 --- a/src/video/SDL_sysvideo.h +++ b/src/video/SDL_sysvideo.h @@ -47,7 +47,6 @@ struct SDL_Texture int h; /**< The height of the texture */ int modMode; /**< The texture modulation mode */ SDL_BlendMode blendMode; /**< The texture blend mode */ - SDL_ScaleMode scaleMode; /**< The texture scale mode */ Uint8 r, g, b, a; /**< Texture modulation values */ SDL_Renderer *renderer; @@ -78,8 +77,6 @@ struct SDL_Renderer SDL_Texture * texture); int (*SetTextureBlendMode) (SDL_Renderer * renderer, SDL_Texture * texture); - int (*SetTextureScaleMode) (SDL_Renderer * renderer, - SDL_Texture * texture); int (*UpdateTexture) (SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, const void *pixels, int pitch); diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 0e4ec105b..57def492b 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -1961,7 +1961,6 @@ SDL_CreateTextureFromSurface(Uint32 format, SDL_Surface * surface) { Uint8 r, g, b, a; SDL_BlendMode blendMode; - SDL_ScaleMode scaleMode; SDL_GetSurfaceColorMod(surface, &r, &g, &b); SDL_SetTextureColorMod(texture, r, g, b); @@ -1976,9 +1975,6 @@ SDL_CreateTextureFromSurface(Uint32 format, SDL_Surface * surface) SDL_GetSurfaceBlendMode(surface, &blendMode); SDL_SetTextureBlendMode(texture, blendMode); } - - SDL_GetSurfaceScaleMode(surface, &scaleMode); - SDL_SetTextureScaleMode(texture, scaleMode); } if (SDL_ISPIXELFORMAT_INDEXED(format) && fmt->palette) { @@ -2161,33 +2157,6 @@ SDL_GetTextureBlendMode(SDL_Texture * texture, SDL_BlendMode *blendMode) return 0; } -int -SDL_SetTextureScaleMode(SDL_Texture * texture, SDL_ScaleMode scaleMode) -{ - SDL_Renderer *renderer; - - CHECK_TEXTURE_MAGIC(texture, -1); - - renderer = texture->renderer; - if (!renderer->SetTextureScaleMode) { - SDL_Unsupported(); - return -1; - } - texture->scaleMode = scaleMode; - return renderer->SetTextureScaleMode(renderer, texture); -} - -int -SDL_GetTextureScaleMode(SDL_Texture * texture, SDL_ScaleMode *scaleMode) -{ - CHECK_TEXTURE_MAGIC(texture, -1); - - if (scaleMode) { - *scaleMode = texture->scaleMode; - } - return 0; -} - int SDL_UpdateTexture(SDL_Texture * texture, const SDL_Rect * rect, const void *pixels, int pitch) diff --git a/src/video/directfb/SDL_DirectFB_render.c b/src/video/directfb/SDL_DirectFB_render.c index 5320fc662..e7e69f0e5 100644 --- a/src/video/directfb/SDL_DirectFB_render.c +++ b/src/video/directfb/SDL_DirectFB_render.c @@ -57,8 +57,6 @@ static int DirectFB_SetTextureColorMod(SDL_Renderer * renderer, SDL_Texture * texture); static int DirectFB_SetTextureBlendMode(SDL_Renderer * renderer, SDL_Texture * texture); -static int DirectFB_SetTextureScaleMode(SDL_Renderer * renderer, - SDL_Texture * texture); static int DirectFB_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, @@ -104,8 +102,6 @@ SDL_RenderDriver DirectFB_RenderDriver = { SDL_TEXTUREMODULATE_ALPHA), (SDL_BLENDMODE_NONE | SDL_BLENDMODE_MASK | SDL_BLENDMODE_BLEND | SDL_BLENDMODE_ADD | SDL_BLENDMODE_MOD), - (SDL_SCALEMODE_NONE | SDL_SCALEMODE_FAST | - SDL_SCALEMODE_SLOW | SDL_SCALEMODE_BEST), 14, { SDL_PIXELFORMAT_INDEX4LSB, @@ -298,7 +294,6 @@ DirectFB_CreateRenderer(SDL_Window * window, Uint32 flags) renderer->SetTextureAlphaMod = DirectFB_SetTextureAlphaMod; renderer->SetTextureColorMod = DirectFB_SetTextureColorMod; renderer->SetTextureBlendMode = DirectFB_SetTextureBlendMode; - renderer->SetTextureScaleMode = DirectFB_SetTextureScaleMode; renderer->UpdateTexture = DirectFB_UpdateTexture; renderer->LockTexture = DirectFB_LockTexture; renderer->UnlockTexture = DirectFB_UnlockTexture; diff --git a/src/video/nds/SDL_ndsrender.c b/src/video/nds/SDL_ndsrender.c index 3ff158372..1f24e4759 100644 --- a/src/video/nds/SDL_ndsrender.c +++ b/src/video/nds/SDL_ndsrender.c @@ -56,8 +56,6 @@ static int NDS_SetTextureAlphaMod(SDL_Renderer * renderer, SDL_Texture * texture); static int NDS_SetTextureBlendMode(SDL_Renderer * renderer, SDL_Texture * texture); -static int NDS_SetTextureScaleMode(SDL_Renderer * renderer, - SDL_Texture * texture); static int NDS_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, const void *pixels, int pitch); @@ -82,7 +80,6 @@ SDL_RenderDriver NDS_RenderDriver = { (SDL_RENDERER_SINGLEBUFFER | SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTDISCARD | SDL_RENDERER_PRESENTVSYNC), /* u32 flags */ (SDL_TEXTUREMODULATE_NONE), /* u32 mod_modes */ (SDL_BLENDMODE_MASK), /* u32 blend_modes */ - (SDL_SCALEMODE_FAST), /* u32 scale_modes */ 3, /* u32 num_texture_formats */ { SDL_PIXELFORMAT_INDEX8, @@ -184,7 +181,6 @@ NDS_CreateRenderer(SDL_Window * window, Uint32 flags) renderer->SetTextureColorMod = NDS_SetTextureColorMod; renderer->SetTextureAlphaMod = NDS_SetTextureAlphaMod; renderer->SetTextureBlendMode = NDS_SetTextureBlendMode; - renderer->SetTextureScaleMode = NDS_SetTextureScaleMode; renderer->UpdateTexture = NDS_UpdateTexture; renderer->LockTexture = NDS_LockTexture; renderer->UnlockTexture = NDS_UnlockTexture; @@ -192,7 +188,6 @@ NDS_CreateRenderer(SDL_Window * window, Uint32 flags) renderer->info.mod_modes = NDS_RenderDriver.info.mod_modes; renderer->info.blend_modes = NDS_RenderDriver.info.blend_modes; - renderer->info.scale_modes = NDS_RenderDriver.info.scale_modes; renderer->info.num_texture_formats = NDS_RenderDriver.info.num_texture_formats; SDL_memcpy(renderer->info.texture_formats, @@ -588,11 +583,4 @@ NDS_SetTextureBlendMode(SDL_Renderer * renderer, SDL_Texture * texture) return 0; } -static int -NDS_SetTextureScaleMode(SDL_Renderer * renderer, SDL_Texture * texture) -{ - /* stub! (note: NDS hardware scaling is nearest neighbor.) */ - return 0; -} - /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/video/photon/SDL_photon_render.c b/src/video/photon/SDL_photon_render.c index 1e4719bcd..8a1bb9ab3 100644 --- a/src/video/photon/SDL_photon_render.c +++ b/src/video/photon/SDL_photon_render.c @@ -104,7 +104,6 @@ SDL_RenderDriver photon_renderdriver = { (SDL_TEXTUREMODULATE_NONE | SDL_TEXTUREMODULATE_ALPHA), (SDL_BLENDMODE_NONE | SDL_BLENDMODE_MASK | SDL_BLENDMODE_BLEND | SDL_BLENDMODE_ADD | SDL_BLENDMODE_MOD), - (SDL_SCALEMODE_NONE | SDL_SCALEMODE_SLOW | SDL_SCALEMODE_FAST), 10, {SDL_PIXELFORMAT_INDEX8, SDL_PIXELFORMAT_RGB555, @@ -153,7 +152,6 @@ photon_createrenderer(SDL_Window * window, Uint32 flags) renderer->SetTextureAlphaMod = photon_settexturealphamod; renderer->SetTextureColorMod = photon_settexturecolormod; renderer->SetTextureBlendMode = photon_settextureblendmode; - renderer->SetTextureScaleMode = photon_settexturescalemode; renderer->UpdateTexture = photon_updatetexture; renderer->LockTexture = photon_locktexture; renderer->UnlockTexture = photon_unlocktexture; @@ -250,22 +248,6 @@ photon_createrenderer(SDL_Window * window, Uint32 flags) /* Initialize surfaces */ _photon_recreate_surfaces(renderer); - /* Set current scale blitting capabilities */ - if (rdata->surfaces_type==SDL_PHOTON_SURFTYPE_OFFSCREEN) - { - renderer->info.scale_modes=SDL_SCALEMODE_NONE | SDL_SCALEMODE_SLOW; - if ((didata->mode_2dcaps & SDL_VIDEO_PHOTON_CAP_SCALED_BLIT)==SDL_VIDEO_PHOTON_CAP_SCALED_BLIT) - { - /* This video mode supports hardware scaling */ - renderer->info.scale_modes|=SDL_SCALEMODE_FAST; - } - } - else - { - /* PhImage blit functions do not support scaling */ - renderer->info.scale_modes=SDL_SCALEMODE_NONE; - } - return renderer; } @@ -976,53 +958,6 @@ photon_settextureblendmode(SDL_Renderer * renderer, SDL_Texture * texture) } } -static int -photon_settexturescalemode(SDL_Renderer * renderer, SDL_Texture * texture) -{ - SDL_RenderData *rdata = (SDL_RenderData *) renderer->driverdata; - - switch (texture->scaleMode) - { - case SDL_SCALEMODE_NONE: - return 0; - case SDL_SCALEMODE_FAST: - if ((renderer->info.scale_modes & SDL_SCALEMODE_FAST)==SDL_SCALEMODE_FAST) - { - return 0; - } - else - { - SDL_Unsupported(); - texture->scaleMode = SDL_SCALEMODE_FAST; - return -1; - } - break; - case SDL_SCALEMODE_SLOW: - if ((renderer->info.scale_modes & SDL_SCALEMODE_SLOW)==SDL_SCALEMODE_SLOW) - { - return 0; - } - else - { - SDL_Unsupported(); - texture->scaleMode = SDL_SCALEMODE_SLOW; - return -1; - } - break; - case SDL_SCALEMODE_BEST: - SDL_Unsupported(); - texture->scaleMode = SDL_SCALEMODE_SLOW; - return -1; - default: - SDL_Unsupported(); - texture->scaleMode = SDL_SCALEMODE_NONE; - return -1; - } - - SDL_Unsupported(); - return -1; -} - static int photon_updatetexture(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, const void *pixels, int pitch) diff --git a/src/video/qnxgf/SDL_gf_render.c b/src/video/qnxgf/SDL_gf_render.c index fd94f607f..609bd19bd 100644 --- a/src/video/qnxgf/SDL_gf_render.c +++ b/src/video/qnxgf/SDL_gf_render.c @@ -87,7 +87,6 @@ SDL_RenderDriver gf_renderdriver = { SDL_TEXTUREMODULATE_ALPHA), (SDL_BLENDMODE_NONE | SDL_BLENDMODE_MASK | SDL_BLENDMODE_BLEND | SDL_BLENDMODE_ADD | SDL_BLENDMODE_MOD), - (SDL_SCALEMODE_NONE | SDL_SCALEMODE_SLOW), 13, { SDL_PIXELFORMAT_INDEX8, @@ -149,7 +148,6 @@ gf_createrenderer(SDL_Window * window, Uint32 flags) renderer->SetTextureAlphaMod = gf_settexturealphamod; renderer->SetTextureColorMod = gf_settexturecolormod; renderer->SetTextureBlendMode = gf_settextureblendmode; - renderer->SetTextureScaleMode = gf_settexturescalemode; renderer->UpdateTexture = gf_updatetexture; renderer->LockTexture = gf_locktexture; renderer->UnlockTexture = gf_unlocktexture; diff --git a/src/video/windows/SDL_ceddrawrender.c b/src/video/windows/SDL_ceddrawrender.c index 7b6d3ff06..9191b2f5f 100644 --- a/src/video/windows/SDL_ceddrawrender.c +++ b/src/video/windows/SDL_ceddrawrender.c @@ -51,8 +51,6 @@ static int DDRAW_SetTextureAlphaMod(SDL_Renderer * renderer, SDL_Texture * texture); static int DDRAW_SetTextureBlendMode(SDL_Renderer * renderer, SDL_Texture * texture); -static int DDRAW_SetTextureScaleMode(SDL_Renderer * renderer, - SDL_Texture * texture); static int DDRAW_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, const void *pixels, int pitch); @@ -85,7 +83,6 @@ SDL_RenderDriver DDRAW_RenderDriver = { SDL_RENDERER_PRESENTDISCARD | SDL_RENDERER_ACCELERATED), (SDL_TEXTUREMODULATE_NONE), (SDL_BLENDMODE_NONE), - (SDL_SCALEMODE_NONE), 0, {0}, 0, @@ -468,7 +465,6 @@ DDRAW_CreateRenderer(SDL_Window * window, Uint32 flags) renderer->SetTextureColorMod = DDRAW_SetTextureColorMod; renderer->SetTextureAlphaMod = DDRAW_SetTextureAlphaMod; renderer->SetTextureBlendMode = DDRAW_SetTextureBlendMode; - renderer->SetTextureScaleMode = DDRAW_SetTextureScaleMode; renderer->UpdateTexture = DDRAW_UpdateTexture; renderer->LockTexture = DDRAW_LockTexture; renderer->UnlockTexture = DDRAW_UnlockTexture; @@ -662,19 +658,6 @@ DDRAW_SetTextureBlendMode(SDL_Renderer * renderer, SDL_Texture * texture) } } -static int -DDRAW_SetTextureScaleMode(SDL_Renderer * renderer, SDL_Texture * texture) -{ - switch (texture->scaleMode) { - case SDL_SCALEMODE_NONE: - default: - SDL_Unsupported(); - texture->scaleMode = SDL_SCALEMODE_NONE; - return -1; - } - return 0; -} - static int DDRAW_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, const void *pixels, int pitch) diff --git a/src/video/windows/SDL_d3drender.c b/src/video/windows/SDL_d3drender.c index 71d9bc82f..9ae6962cc 100644 --- a/src/video/windows/SDL_d3drender.c +++ b/src/video/windows/SDL_d3drender.c @@ -107,8 +107,6 @@ static int D3D_SetTextureAlphaMod(SDL_Renderer * renderer, SDL_Texture * texture); static int D3D_SetTextureBlendMode(SDL_Renderer * renderer, SDL_Texture * texture); -static int D3D_SetTextureScaleMode(SDL_Renderer * renderer, - SDL_Texture * texture); static int D3D_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, const void *pixels, int pitch); @@ -150,8 +148,6 @@ SDL_RenderDriver D3D_RenderDriver = { SDL_TEXTUREMODULATE_ALPHA), (SDL_BLENDMODE_NONE | SDL_BLENDMODE_MASK | SDL_BLENDMODE_BLEND | SDL_BLENDMODE_ADD | SDL_BLENDMODE_MOD), - (SDL_SCALEMODE_NONE | SDL_SCALEMODE_FAST | - SDL_SCALEMODE_SLOW | SDL_SCALEMODE_BEST), 0, {0}, 0, @@ -461,7 +457,6 @@ D3D_CreateRenderer(SDL_Window * window, Uint32 flags) renderer->SetTextureColorMod = D3D_SetTextureColorMod; renderer->SetTextureAlphaMod = D3D_SetTextureAlphaMod; renderer->SetTextureBlendMode = D3D_SetTextureBlendMode; - renderer->SetTextureScaleMode = D3D_SetTextureScaleMode; renderer->UpdateTexture = D3D_UpdateTexture; renderer->LockTexture = D3D_LockTexture; renderer->UnlockTexture = D3D_UnlockTexture; @@ -803,23 +798,6 @@ D3D_SetTextureBlendMode(SDL_Renderer * renderer, SDL_Texture * texture) } } -static int -D3D_SetTextureScaleMode(SDL_Renderer * renderer, SDL_Texture * texture) -{ - switch (texture->scaleMode) { - case SDL_SCALEMODE_NONE: - case SDL_SCALEMODE_FAST: - case SDL_SCALEMODE_SLOW: - case SDL_SCALEMODE_BEST: - return 0; - default: - SDL_Unsupported(); - texture->scaleMode = SDL_SCALEMODE_NONE; - return -1; - } - return 0; -} - static int D3D_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * rect, const void *pixels, int pitch) @@ -1342,27 +1320,10 @@ D3D_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture, shader = data->ps_mask; } - switch (texture->scaleMode) { - case SDL_SCALEMODE_NONE: - case SDL_SCALEMODE_FAST: - IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MINFILTER, - D3DTEXF_POINT); - IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MAGFILTER, - D3DTEXF_POINT); - break; - case SDL_SCALEMODE_SLOW: - IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MINFILTER, - D3DTEXF_LINEAR); - IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MAGFILTER, - D3DTEXF_LINEAR); - break; - case SDL_SCALEMODE_BEST: - IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MINFILTER, - D3DTEXF_GAUSSIANQUAD); - IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MAGFILTER, - D3DTEXF_GAUSSIANQUAD); - break; - } + IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MINFILTER, + D3DTEXF_LINEAR); + IDirect3DDevice9_SetSamplerState(data->device, 0, D3DSAMP_MAGFILTER, + D3DTEXF_LINEAR); result = IDirect3DDevice9_SetTexture(data->device, 0, (IDirect3DBaseTexture9 *) diff --git a/src/video/windows/SDL_gapirender.c b/src/video/windows/SDL_gapirender.c index 456f3e37f..babdc2a00 100644 --- a/src/video/windows/SDL_gapirender.c +++ b/src/video/windows/SDL_gapirender.c @@ -210,7 +210,6 @@ SDL_RenderDriver GAPI_RenderDriver = { (SDL_RENDERER_SINGLEBUFFER | SDL_RENDERER_PRESENTDISCARD), (SDL_TEXTUREMODULATE_NONE), (SDL_BLENDMODE_NONE), - (SDL_SCALEMODE_NONE), 7, { SDL_PIXELFORMAT_RGB555, @@ -233,7 +232,6 @@ SDL_RenderDriver RAW_RenderDriver = { (SDL_RENDERER_SINGLEBUFFER | SDL_RENDERER_PRESENTDISCARD), (SDL_TEXTUREMODULATE_NONE), (SDL_BLENDMODE_NONE), - (SDL_SCALEMODE_NONE), 7, { SDL_PIXELFORMAT_RGB555, diff --git a/src/video/windows/SDL_windowsvideo.c b/src/video/windows/SDL_windowsvideo.c index 4a8723570..51f4d61be 100644 --- a/src/video/windows/SDL_windowsvideo.c +++ b/src/video/windows/SDL_windowsvideo.c @@ -30,7 +30,6 @@ #include "SDL_windowsvideo.h" #include "SDL_windowsshape.h" #include "SDL_d3drender.h" -#include "SDL_gdirender.h" #include "SDL_gapirender.h" /* Initialization/Query functions */ diff --git a/src/video/x11/SDL_x11video.c b/src/video/x11/SDL_x11video.c index 948acd5b8..82a260776 100644 --- a/src/video/x11/SDL_x11video.c +++ b/src/video/x11/SDL_x11video.c @@ -29,7 +29,6 @@ #include "../SDL_pixels_c.h" #include "SDL_x11video.h" -#include "SDL_x11render.h" #include "SDL_x11shape.h" #include "SDL_x11touch.h" diff --git a/test/common.c b/test/common.c index 968efb0b5..862c76fb3 100644 --- a/test/common.c +++ b/test/common.c @@ -381,28 +381,6 @@ PrintBlendMode(Uint32 flag) } } -static void -PrintScaleMode(Uint32 flag) -{ - switch (flag) { - case SDL_SCALEMODE_NONE: - fprintf(stderr, "None"); - break; - case SDL_SCALEMODE_FAST: - fprintf(stderr, "Fast"); - break; - case SDL_SCALEMODE_SLOW: - fprintf(stderr, "Slow"); - break; - case SDL_SCALEMODE_BEST: - fprintf(stderr, "Best"); - break; - default: - fprintf(stderr, "0x%8.8x", flag); - break; - } -} - static void PrintPixelFormat(Uint32 format) { @@ -540,21 +518,6 @@ PrintRenderer(SDL_RendererInfo * info) } fprintf(stderr, ")\n"); - fprintf(stderr, " Scale: 0x%8.8X", info->scale_modes); - fprintf(stderr, " ("); - count = 0; - for (i = 0; i < sizeof(info->scale_modes) * 8; ++i) { - Uint32 flag = (1 << i); - if (info->scale_modes & flag) { - if (count > 0) { - fprintf(stderr, " | "); - } - PrintScaleMode(flag); - ++count; - } - } - fprintf(stderr, ")\n"); - fprintf(stderr, " Texture formats (%d): ", info->num_texture_formats); for (i = 0; i < (int) info->num_texture_formats; ++i) { if (i > 0) { diff --git a/test/testsprite2.c b/test/testsprite2.c index 3ddda3e28..631b09105 100644 --- a/test/testsprite2.c +++ b/test/testsprite2.c @@ -21,7 +21,6 @@ static SDL_Rect *positions; static SDL_Rect *velocities; static int sprite_w, sprite_h; static SDL_BlendMode blendMode = SDL_BLENDMODE_MASK; -static SDL_ScaleMode scaleMode = SDL_SCALEMODE_NONE; /* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ static void @@ -89,7 +88,6 @@ LoadSprite(char *file) return (-1); } SDL_SetTextureBlendMode(sprites[i], blendMode); - SDL_SetTextureScaleMode(sprites[i], scaleMode); } SDL_FreeSurface(temp); @@ -253,22 +251,6 @@ main(int argc, char *argv[]) consumed = 2; } } - } else if (SDL_strcasecmp(argv[i], "--scale") == 0) { - if (argv[i + 1]) { - if (SDL_strcasecmp(argv[i + 1], "none") == 0) { - scaleMode = SDL_SCALEMODE_NONE; - consumed = 2; - } else if (SDL_strcasecmp(argv[i + 1], "fast") == 0) { - scaleMode = SDL_SCALEMODE_FAST; - consumed = 2; - } else if (SDL_strcasecmp(argv[i + 1], "slow") == 0) { - scaleMode = SDL_SCALEMODE_SLOW; - consumed = 2; - } else if (SDL_strcasecmp(argv[i + 1], "best") == 0) { - scaleMode = SDL_SCALEMODE_BEST; - consumed = 2; - } - } } else if (SDL_strcasecmp(argv[i], "--cyclecolor") == 0) { cycle_color = SDL_TRUE; consumed = 1; @@ -282,7 +264,7 @@ main(int argc, char *argv[]) } if (consumed < 0) { fprintf(stderr, - "Usage: %s %s [--blend none|mask|blend|add|mod] [--scale none|fast|slow|best] [--cyclecolor] [--cyclealpha]\n", + "Usage: %s %s [--blend none|mask|blend|add|mod] [--cyclecolor] [--cyclealpha]\n", argv[0], CommonUsage(state)); quit(1); } @@ -316,10 +298,6 @@ main(int argc, char *argv[]) quit(2); } srand((unsigned int)time(NULL)); - if (scaleMode != SDL_SCALEMODE_NONE) { - sprite_w += sprite_w / 2; - sprite_h += sprite_h / 2; - } for (i = 0; i < num_sprites; ++i) { positions[i].x = rand() % (state->window_w - sprite_w); positions[i].y = rand() % (state->window_h - sprite_h);