mirror of
https://github.com/MiyooCFW/buildroot.git
synced 2025-09-27 22:24:19 +03:00
PACKAGE: SDL2 Add set scale mode for directFB video backend (#136)
This commit is contained in:
83
package/sdl2/0002-Add-set-scale-mode-for-directFB.patch
Normal file
83
package/sdl2/0002-Add-set-scale-mode-for-directFB.patch
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
diff --git a/src/video/directfb/SDL_DirectFB_render.c b/src/video/directfb/SDL_DirectFB_render.c
|
||||||
|
index 257e950..5e4aa3f 100644
|
||||||
|
--- a/src/video/directfb/SDL_DirectFB_render.c
|
||||||
|
+++ b/src/video/directfb/SDL_DirectFB_render.c
|
||||||
|
@@ -414,7 +414,20 @@ DirectFB_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
|
||||||
|
|
||||||
|
}
|
||||||
|
#if (DFB_VERSION_ATLEAST(1,2,0))
|
||||||
|
- data->render_options = DSRO_NONE;
|
||||||
|
+ switch (texture->scaleMode) {
|
||||||
|
+ case SDL_ScaleModeNearest:
|
||||||
|
+ data->render_options = DSRO_NONE;
|
||||||
|
+ break;
|
||||||
|
+ case SDL_ScaleModeLinear:
|
||||||
|
+ data->render_options = DSRO_SMOOTH_UPSCALE | DSRO_SMOOTH_DOWNSCALE;
|
||||||
|
+ break;
|
||||||
|
+ case SDL_ScaleModeBest:
|
||||||
|
+ data->render_options =
|
||||||
|
+ DSRO_SMOOTH_UPSCALE | DSRO_SMOOTH_DOWNSCALE | DSRO_ANTIALIAS;
|
||||||
|
+ break;
|
||||||
|
+ default:
|
||||||
|
+ data->render_options = DSRO_NONE;
|
||||||
|
+ }
|
||||||
|
#endif
|
||||||
|
if (texture->access == SDL_TEXTUREACCESS_STREAMING) {
|
||||||
|
/* 3 plane YUVs return 1 bpp, but we need more space for other planes */
|
||||||
|
@@ -435,35 +448,30 @@ DirectFB_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#if 0
|
||||||
|
-static int
|
||||||
|
-DirectFB_SetTextureScaleMode(SDL_Renderer * renderer, SDL_Texture * texture)
|
||||||
|
+static void
|
||||||
|
+DirectFB_SetTextureScaleMode(SDL_Renderer * renderer, SDL_Texture * texture, SDL_ScaleMode scaleMode)
|
||||||
|
{
|
||||||
|
#if (DFB_VERSION_ATLEAST(1,2,0))
|
||||||
|
|
||||||
|
DirectFB_TextureData *data = (DirectFB_TextureData *) texture->driverdata;
|
||||||
|
|
||||||
|
- switch (texture->scaleMode) {
|
||||||
|
- case SDL_SCALEMODE_NONE:
|
||||||
|
- case SDL_SCALEMODE_FAST:
|
||||||
|
+ switch (scaleMode) {
|
||||||
|
+ case SDL_ScaleModeNearest:
|
||||||
|
data->render_options = DSRO_NONE;
|
||||||
|
break;
|
||||||
|
- case SDL_SCALEMODE_SLOW:
|
||||||
|
+ case SDL_ScaleModeLinear:
|
||||||
|
data->render_options = DSRO_SMOOTH_UPSCALE | DSRO_SMOOTH_DOWNSCALE;
|
||||||
|
break;
|
||||||
|
- case SDL_SCALEMODE_BEST:
|
||||||
|
+ case SDL_ScaleModeBest:
|
||||||
|
data->render_options =
|
||||||
|
DSRO_SMOOTH_UPSCALE | DSRO_SMOOTH_DOWNSCALE | DSRO_ANTIALIAS;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
data->render_options = DSRO_NONE;
|
||||||
|
- texture->scaleMode = SDL_SCALEMODE_NONE;
|
||||||
|
- return SDL_Unsupported();
|
||||||
|
+ texture->scaleMode = SDL_ScaleModeNearest;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
- return 0;
|
||||||
|
}
|
||||||
|
-#endif
|
||||||
|
|
||||||
|
static int
|
||||||
|
DirectFB_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture,
|
||||||
|
@@ -573,11 +581,12 @@ DirectFB_UnlockTexture(SDL_Renderer * renderer, SDL_Texture * texture)
|
||||||
|
texturedata->pixels = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+#if 0
|
||||||
|
static void
|
||||||
|
DirectFB_SetTextureScaleMode()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
static void
|
Reference in New Issue
Block a user