X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FUtils%2FImageIO.cpp;h=95f89544c26b062c5751faa1dd310b2fa4d6c4cd;hb=b32cd80b243d77cd80e026c7ae73e33ec39b1de9;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];