diff options
Diffstat (limited to 'loader.c')
-rw-r--r-- | loader.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -1,13 +1,14 @@ #include <SDL2/SDL.h> #include <string.h> +extern SDL_Texture* imv_load_png(SDL_Renderer *r, const char* path); + SDL_Texture* imv_load_image(SDL_Renderer *r, const char* path) { if(!path) return NULL; const char* ext = strrchr(path, '.'); - SDL_Texture *img = NULL; if(ext == NULL) { fprintf(stderr, "Could not determine filetype of '%s' from its extension.\n", @@ -15,7 +16,7 @@ SDL_Texture* imv_load_image(SDL_Renderer *r, const char* path) } else if(strcasecmp(ext, ".test") == 0) { const int width = 1280; const int height = 720; - img = SDL_CreateTexture(r, + SDL_Texture *img = SDL_CreateTexture(r, SDL_PIXELFORMAT_RGB888, SDL_TEXTUREACCESS_STATIC, width, height); void *pixels = malloc(width*height*3); @@ -23,7 +24,10 @@ SDL_Texture* imv_load_image(SDL_Renderer *r, const char* path) SDL_Rect area = {0,0,width,height}; SDL_UpdateTexture(img, &area, pixels, width * 3); free(pixels); + return img; + } else if(strcasecmp(ext, ".png") == 0) { + return imv_load_png(r, path); } - return img; + return NULL; } |