/** \param file File handle to check.\r
\return Pointer to newly created image, or 0 upon error. */\r
virtual IImage* loadImage(io::IReadFile* file) const = 0;\r
-\r
- //! Creates a multiple surfaces from the file eg. whole cube map.\r
- /** \param file File handle to check.\r
- \param type Pointer to E_TEXTURE_TYPE where a recommended type of the texture will be stored.\r
- \return Array of pointers to newly created images. */\r
- virtual core::array<IImage*> loadImages(io::IReadFile* file, E_TEXTURE_TYPE* type) const\r
- {\r
- core::array<IImage*> image;\r
-\r
- return image;\r
- }\r
};\r
\r
\r
\r
core::array<IImage*> imageArray;\r
\r
- if (file)\r
- {\r
- s32 i;\r
-\r
- // try to load file based on file extension\r
- for (i = SurfaceLoader.size() - 1; i >= 0; --i)\r
- {\r
- if (SurfaceLoader[i]->isALoadableFileExtension(file->getFileName()))\r
- {\r
- // reset file position which might have changed due to previous loadImage calls\r
- file->seek(0);\r
- imageArray = SurfaceLoader[i]->loadImages(file, type);\r
-\r
- if (imageArray.size() == 0)\r
- {\r
- file->seek(0);\r
- IImage* image = SurfaceLoader[i]->loadImage(file);\r
+ if (!file)\r
+ return imageArray;\r
\r
- if (image)\r
- imageArray.push_back(image);\r
- }\r
+ // try to load file based on file extension\r
+ for (int i = SurfaceLoader.size() - 1; i >= 0; --i) {\r
+ if (!SurfaceLoader[i]->isALoadableFileExtension(file->getFileName()))\r
+ continue;\r
\r
- if (imageArray.size() > 0)\r
- return imageArray;\r
- }\r
+ file->seek(0); // reset file position which might have changed due to previous loadImage calls\r
+ if (IImage *image = SurfaceLoader[i]->loadImage(file)) {\r
+ imageArray.push_back(image);\r
+ return imageArray;\r
}\r
+ }\r
\r
- // try to load file based on what is in it\r
- for (i = SurfaceLoader.size() - 1; i >= 0; --i)\r
- {\r
- // dito\r
- file->seek(0);\r
- if (SurfaceLoader[i]->isALoadableFileFormat(file)\r
- && !SurfaceLoader[i]->isALoadableFileExtension(file->getFileName()) // extension was tried above already\r
- )\r
- {\r
- file->seek(0);\r
- imageArray = SurfaceLoader[i]->loadImages(file, type);\r
-\r
- if (imageArray.size() == 0)\r
- {\r
- file->seek(0);\r
- IImage* image = SurfaceLoader[i]->loadImage(file);\r
-\r
- if (image)\r
- imageArray.push_back(image);\r
- }\r
+ // try to load file based on what is in it\r
+ for (int i = SurfaceLoader.size() - 1; i >= 0; --i) {\r
+ if (SurfaceLoader[i]->isALoadableFileExtension(file->getFileName()))\r
+ continue; // extension was tried above already\r
+ file->seek(0); // dito\r
+ if (!SurfaceLoader[i]->isALoadableFileFormat(file))\r
+ continue;\r
\r
- if (imageArray.size() > 0)\r
- return imageArray;\r
- }\r
+ file->seek(0);\r
+ if (IImage *image = SurfaceLoader[i]->loadImage(file)) {\r
+ imageArray.push_back(image);\r
+ return imageArray;\r
}\r
}\r
\r