00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt 00002 // This file is part of the "Irrlicht Engine". 00003 // For conditions of distribution and use, see copyright notice in irrlicht.h 00004 00005 #ifndef __I_SURFACE_LOADER_H_INCLUDED__ 00006 #define __I_SURFACE_LOADER_H_INCLUDED__ 00007 00008 #include "IReferenceCounted.h" 00009 #include "IImage.h" 00010 #include "path.h" 00011 00012 namespace irr 00013 { 00014 namespace io 00015 { 00016 class IReadFile; 00017 } // end namespace io 00018 namespace video 00019 { 00020 00022 00026 class IImageLoader : public virtual IReferenceCounted 00027 { 00028 public: 00029 00031 00034 virtual bool isALoadableFileExtension(const io::path& filename) const = 0; 00035 00037 00040 virtual bool isALoadableFileFormat(io::IReadFile* file) const = 0; 00041 00043 00045 virtual IImage* loadImage(io::IReadFile* file) const = 0; 00046 }; 00047 00048 00049 } // end namespace video 00050 } // end namespace irr 00051 00052 #endif 00053