mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-10-06 09:56:26 +00:00
Added support for linear and pixel art scaling for palettized textures
This commit is contained in:
@@ -104,6 +104,7 @@ int main(int argc, char *argv[])
|
||||
int i;
|
||||
int frames;
|
||||
Uint64 then, now;
|
||||
SDL_ScaleMode scale_mode = SDL_SCALEMODE_PIXELART;
|
||||
|
||||
/* Initialize test framework */
|
||||
state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO);
|
||||
@@ -112,8 +113,34 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
/* Parse commandline */
|
||||
if (!SDLTest_CommonDefaultArgs(state, argc, argv)) {
|
||||
return 1;
|
||||
for (i = 1; i < argc;) {
|
||||
int consumed;
|
||||
|
||||
consumed = SDLTest_CommonArg(state, i);
|
||||
if (consumed == 0) {
|
||||
consumed = -1;
|
||||
if (SDL_strcasecmp(argv[i], "--nearest") == 0) {
|
||||
scale_mode = SDL_SCALEMODE_NEAREST;
|
||||
consumed = 1;
|
||||
} else if (SDL_strcasecmp(argv[i], "--linear") == 0) {
|
||||
scale_mode = SDL_SCALEMODE_LINEAR;
|
||||
consumed = 1;
|
||||
} else if (SDL_strcasecmp(argv[i], "--pixelart") == 0) {
|
||||
scale_mode = SDL_SCALEMODE_PIXELART;
|
||||
consumed = 1;
|
||||
}
|
||||
}
|
||||
if (consumed < 0) {
|
||||
static const char *options[] = {
|
||||
"[--nearest]",
|
||||
"[--linear]",
|
||||
"[--pixelart]",
|
||||
NULL
|
||||
};
|
||||
SDLTest_CommonLogUsage(state, argv[0], options);
|
||||
return 1;
|
||||
}
|
||||
i += consumed;
|
||||
}
|
||||
|
||||
if (!SDLTest_CommonInit(state)) {
|
||||
@@ -132,7 +159,8 @@ int main(int argc, char *argv[])
|
||||
quit(2);
|
||||
}
|
||||
SDL_GetTextureSize(drawstate->sprite, &drawstate->sprite_rect.w, &drawstate->sprite_rect.h);
|
||||
SDL_SetTextureScaleMode(drawstate->sprite, SDL_SCALEMODE_PIXELART);
|
||||
SDL_SetTextureScaleMode(drawstate->background, scale_mode);
|
||||
SDL_SetTextureScaleMode(drawstate->sprite, scale_mode);
|
||||
drawstate->scale_direction = 1;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user