123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- // This file is part of the "Irrlicht Engine".
- // For conditions of distribution and use, see copyright notice in irrlicht.h
- #ifndef IRR_I_MESH_TEXTURE_LOADER_H_INCLUDED
- #define IRR_I_MESH_TEXTURE_LOADER_H_INCLUDED
- #include "path.h"
- #include "IReferenceCounted.h"
- namespace irr
- {
- namespace video
- {
- class ITexture;
- }
- namespace io
- {
- class IReadFile;
- }
- namespace scene
- {
- //! Finding and loading textures inside meshloaders.
- /** A texture loader can search for a texture in several paths.
- For example relative to a given texture-path, relative to the current
- working directory or relative to a mesh- and/or material-file.
- */
- class IMeshTextureLoader : public virtual IReferenceCounted
- {
- public:
- //! Destructor
- virtual ~IMeshTextureLoader() {}
- //! Set a custom texture path.
- /** This is the first path the texture-loader should search. */
- virtual void setTexturePath(const irr::io::path& path) = 0;
- //! Get the current custom texture path.
- virtual const irr::io::path& getTexturePath() const = 0;
- //! Get the texture by searching for it in all paths that makes sense for the given textureName.
- /** Usually you do not have to use this method, it is used internally by IMeshLoader's.
- \param textureName Texturename as used in the mesh-format
- \return Pointer to the texture. Returns 0 if loading failed.*/
- virtual irr::video::ITexture* getTexture(const irr::io::path& textureName) = 0;
- //! Meshloaders will search paths relative to the meshFile.
- /** Usually you do not have to use this method, it is used internally by IMeshLoader's.
- Any values you set here will likely be overwritten internally. */
- virtual void setMeshFile(const irr::io::IReadFile* meshFile) = 0;
- //! Meshloaders will try to look relative to the path of the materialFile
- /** Usually you do not have to use this method, it is used internally by IMeshLoader's.
- Any values you set here will likely be overwritten internally. */
- virtual void setMaterialFile(const irr::io::IReadFile* materialFile) = 0;
- };
- } // end namespace scene
- } // end namespace irr
- #endif
|