Making the API simpler, scaling is always defined as linear interpolation and should be supported as much as possible on all renderers.
--HG-- extra : rebase_source : 4edac7fd162a2eb37a50159b958db37a03e944a5
This commit is contained in:
parent
9c12618379
commit
df1f384c5b
22 changed files with 9 additions and 544 deletions
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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: */
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 *)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue