diff options
Diffstat (limited to 'sources/TZR_SetViewportSize.c')
-rw-r--r-- | sources/TZR_SetViewportSize.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/sources/TZR_SetViewportSize.c b/sources/TZR_SetViewportSize.c new file mode 100644 index 0000000..fee70db --- /dev/null +++ b/sources/TZR_SetViewportSize.c @@ -0,0 +1,40 @@ +#include "TZR.h" +#include "TZR_globals.h" +#include "sdl_error.h" + +int +TZR_SetViewportSize(int width, int height) +{ + const int pw = ___tzr_config.width; + const int ph = ___tzr_config.height; + ___tzr_config.width = width; + ___tzr_config.height = height; + if (___tzr_config.hd_render) { + if (SDL_RenderSetLogicalSize(___tzr_renderer, + ___tzr_config.width, + ___tzr_config.height) < 0) + return sdl_error(-1); + } else { + if (___tzr_target != NULL && pw == width && ph == height) + return 0; + if (___tzr_target != NULL) + SDL_DestroyTexture(___tzr_target); + ___tzr_target = SDL_CreateTexture(___tzr_renderer, + SDL_PIXELFORMAT_RGB888, + SDL_TEXTUREACCESS_TARGET, + ___tzr_config.width, + ___tzr_config.height); + if (___tzr_target == NULL) + return sdl_error(-1); + if (___tzr_config.interlace) { + ___tzr_target_pre = SDL_CreateTexture( + ___tzr_renderer, + SDL_PIXELFORMAT_RGB888, + SDL_TEXTUREACCESS_TARGET, + ___tzr_config.width, + ___tzr_config.height); + } + } + return 0; +} + |