X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FUtils%2FImageIO.cpp;h=95f89544c26b062c5751faa1dd310b2fa4d6c4cd;hb=5d3b7560a50c3656ec441343359508c9de1290ca;hp=778492c93fef8f3033e97d184a5f7ebdef7137d3;hpb=ed3662c0852c4312a612b4fc35bd03aba8d13db7;p=lugaru.git diff --git a/Source/Utils/ImageIO.cpp b/Source/Utils/ImageIO.cpp index 778492c..95f8954 100644 --- a/Source/Utils/ImageIO.cpp +++ b/Source/Utils/ImageIO.cpp @@ -28,8 +28,6 @@ along with Lugaru. If not, see . #include #include -extern bool visibleloading; - /* These two are needed for screenshot */ extern int kContextWidth; extern int kContextHeight; @@ -51,21 +49,22 @@ ImageRec::~ImageRec() bool load_image(const char *file_name, ImageRec &tex) { - if (visibleloading) - Game::LoadingScreen(); + Game::LoadingScreen(); - if ( tex.data == NULL ) + if ( tex.data == NULL ) { return false; + } const char *ptr = strrchr((char *)file_name, '.'); if (ptr) { - if (strcasecmp(ptr + 1, "png") == 0) + if (strcasecmp(ptr + 1, "png") == 0) { return load_png(file_name, tex); - else if (strcasecmp(ptr + 1, "jpg") == 0) + } else if (strcasecmp(ptr + 1, "jpg") == 0) { return load_jpg(file_name, tex); + } } - STUBBED("Unsupported image type"); + std::cerr << "Unsupported image type" << std::endl; return false; } @@ -73,11 +72,12 @@ bool save_screenshot(const char *file_name) { const char *ptr = strrchr((char *)file_name, '.'); if (ptr) { - if (strcasecmp(ptr + 1, "png") == 0) + if (strcasecmp(ptr + 1, "png") == 0) { return save_screenshot_png((Folders::getScreenshotDir() + '/' + file_name).c_str()); + } } - STUBBED("Unsupported image type"); + std::cerr << "Unsupported image type" << std::endl; return false; } @@ -100,10 +100,13 @@ static bool load_jpg(const char *file_name, ImageRec &tex) struct my_error_mgr jerr; JSAMPROW buffer[1]; /* Output row buffer */ int row_stride; /* physical row width in output buffer */ + errno = 0; FILE *infile = fopen(file_name, "rb"); - if (infile == NULL) + if (infile == NULL) { + perror((std::string("Couldn't open file ") + file_name).c_str()); return false; + } cinfo.err = jpeg_std_error(&jerr.pub); jerr.pub.error_exit = my_error_exit; @@ -150,10 +153,11 @@ static bool load_png(const char *file_name, ImageRec &tex) int bit_depth, color_type, interlace_type; bool retval = false; png_byte **row_pointers = NULL; + errno = 0; FILE *fp = fopen(file_name, "rb"); if (fp == NULL) { - cerr << file_name << " not found" << endl; + perror((std::string("Couldn't open file ") + file_name).c_str()); return false; } @@ -233,9 +237,12 @@ static bool save_screenshot_png(const char *file_name) png_infop info_ptr = NULL; bool retval = false; + errno = 0; fp = fopen(file_name, "wb"); - if (fp == NULL) + if (fp == NULL) { + perror((std::string("Couldn't open file ") + file_name).c_str()); return false; + } png_bytep *row_pointers = new png_bytep[kContextHeight]; png_bytep screenshot = new png_byte[kContextWidth * kContextHeight * 3];