X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgraphics%2Fimageloader.cpp;h=fbba25cd75ae59ce6e194134caea9141e79a2177;hb=d163b3628fee61ea4acad0e9429aab904b03bf70;hp=15f0e50f7e14b1142f2ce664f542d7f4fbcd7618;hpb=21b0c47700f1b570b6129384ce0b96a0c6b48ffd;p=libs%2Fgui.git diff --git a/source/graphics/imageloader.cpp b/source/graphics/imageloader.cpp index 15f0e50..fbba25c 100644 --- a/source/graphics/imageloader.cpp +++ b/source/graphics/imageloader.cpp @@ -2,6 +2,18 @@ #include #include #include "imageloader.h" +#ifdef WITH_LIBPNG +#include "png/pngloader.h" +#endif +#ifdef WITH_LIBJPEG +#include "jpeg/jpegloader.h" +#endif +#ifdef WITH_DEVIL +#include "devil/devilloader.h" +#endif +#ifdef WITH_QUARTZ +#include "quartz/quartzloader.h" +#endif using namespace std; @@ -36,6 +48,19 @@ ImageLoader *ImageLoader::open_file(const string &fn) ImageLoader *ImageLoader::open_io(IO::Seekable &io) { +#ifdef WITH_LIBPNG + (void)RegisteredImageLoader::reg; +#endif +#ifdef WITH_LIBJPEG + (void)RegisteredImageLoader::reg; +#endif +#ifdef WITH_DEVIL + (void)RegisteredImageLoader::reg; +#endif +#ifdef WITH_QUARTZ + (void)RegisteredImageLoader::reg; +#endif + list &loaders = get_registered_loaders(); if(registered_loaders_changed) { @@ -43,6 +68,9 @@ ImageLoader *ImageLoader::open_io(IO::Seekable &io) loaders.sort(signature_size_compare); } + if(loaders.empty()) + throw unsupported_image_format("no loaders"); + vector sig_buf(loaders.back()->get_signature_size()); unsigned sig_len = io.read(&sig_buf[0], sig_buf.size()); string signature(sig_buf.begin(), sig_buf.end());