]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/png/pngloader.cpp
Add some state checking to ImageLoader
[libs/gui.git] / source / graphics / png / pngloader.cpp
index c2691bd5c30522a51843bc7774d4ab8453c6db1e..16ad36bbeb4bd3e7e53463d1ab056340e4a7dfe4 100644 (file)
@@ -54,7 +54,7 @@ bool PngLoader::detect(const std::string &sig)
        return !png_sig_cmp(reinterpret_cast<png_byte *>(const_cast<char*>(sig.data())), 0, sig.size());
 }
 
-void PngLoader::load(Image::Data &data)
+void PngLoader::load_(Image::Data &data)
 {
        png_byte **rows = 0;
 
@@ -90,7 +90,7 @@ void PngLoader::load(Image::Data &data)
        default: throw unsupported_image_format("unknown color type");
        }
 
-       data.data = new char[data.stride*data.height];
+       data.pixels = new char[data.stride*data.height];
 
        if(interlace==PNG_INTERLACE_ADAM7)
        {
@@ -98,7 +98,7 @@ void PngLoader::load(Image::Data &data)
                unsigned n_passes = png_set_interlace_handling(priv->png);
                rows = new png_byte *[data.height];
                for(unsigned y=0; y<data.height; ++y)
-                       rows[y] = reinterpret_cast<png_byte *>(data.data+data.stride*(data.height-1-y));
+                       rows[y] = reinterpret_cast<png_byte *>(data.pixels+data.stride*(data.height-1-y));
 
                for(unsigned i=0; i<n_passes; ++i)
                        png_read_rows(priv->png, rows, 0, data.height);
@@ -109,7 +109,7 @@ void PngLoader::load(Image::Data &data)
        else
        {
                for(unsigned y=0; y<data.height; ++y)
-                       png_read_row(priv->png, reinterpret_cast<png_byte *>(data.data+data.stride*(data.height-1-y)), 0);
+                       png_read_row(priv->png, reinterpret_cast<png_byte *>(data.pixels+data.stride*(data.height-1-y)), 0);
        }
 
        png_read_end(priv->png, 0);