## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# imap/loader.h

Go to the documentation of this file.

    00001 /*
    00002     The Crystal Space geometry loader interface
    00003     Copyright (C) 2000 by Andrew Zabolotny <bit@eltech.ru>
    00004
    00005     This library is free software; you can redistribute it and/or
    00006     modify it under the terms of the GNU Library General Public
    00007     License as published by the Free Software Foundation; either
    00008     version 2 of the License, or (at your option) any later version.
    00009
    00010     This library is distributed in the hope that it will be useful,
    00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
    00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00013     Library General Public License for more details.
    00014
    00015     You should have received a copy of the GNU Library General Public
    00016     License along with this library; if not, write to the Free
    00017     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
    00018 */
    00019
    00020 #ifndef __CS_IMAP_PARSER_H__
    00021 #define __CS_IMAP_PARSER_H__
    00022
    00028 #include "csutil/scf.h"
    00029
    00030 #include "igraphic/image.h"
    00031 #include "ivideo/txtmgr.h"
    00032 #include "imap/streamsource.h"
    00033
    00034 struct iDocumentNode;
    00035 struct iImage;
    00036 struct iMaterialWrapper;
    00037 struct iMeshWrapper;
    00038 struct iMeshFactoryWrapper;
    00039 struct iRegion;
    00040 struct iSector;
    00041 struct iSoundData;
    00042 struct iSoundHandle;
    00043 struct iSoundWrapper;
    00044 struct iTextureHandle;
    00045 struct iTextureManager;
    00046 struct iTextureWrapper;
    00047 struct iSndSysData;
    00048 struct iSndSysWrapper;
    00049 struct iSndSysStream;
    00050
    00051 SCF_VERSION (iLoaderStatus, 0, 1, 0);
    00052
    00056 struct iLoaderStatus : public iBase
    00057 {
    00059   virtual bool IsReady () = 0;
    00061   virtual bool IsError () = 0;
    00062 };
    00063
    00064 SCF_VERSION (iLoader, 0, 0, 8);
    00065
    00069 struct iLoader : public iBase
    00070 {
    00077   virtual csPtr<iImage> LoadImage (const char* Filename,
    00078     int Format = CS_IMGFMT_INVALID) = 0;
    00091   virtual csPtr<iTextureHandle> LoadTexture (const char* Filename,
    00092         int Flags = CS_TEXTURE_3D, iTextureManager *tm = 0,
    00093         csRef<iImage>* image=0) = 0;
    00119   virtual iTextureWrapper* LoadTexture (const char *Name,
    00120         const char *FileName,
    00121         int Flags = CS_TEXTURE_3D, iTextureManager *tm = 0,
    00122         bool reg = true, bool create_material = true,
    00123         bool free_image = true, iRegion* region = 0) = 0;
    00124
    00132   virtual csPtr<iImage> LoadImage (iDataBuffer* buf,
    00133     int Format = CS_IMGFMT_INVALID) = 0;
    00147   virtual csPtr<iTextureHandle> LoadTexture (iDataBuffer* buf,
    00148         int Flags = CS_TEXTURE_3D, iTextureManager *tm = 0,
    00149         csRef<iImage>* image=0) = 0;
    00173   virtual iTextureWrapper* LoadTexture (const char *Name,
    00174         iDataBuffer* buf,
    00175         int Flags = CS_TEXTURE_3D, iTextureManager *tm = 0,
    00176         bool reg = true, bool create_material = true,
    00177         bool free_image = true) = 0;
    00178
    00180   virtual csPtr<iSoundData> LoadSoundData (const char *fname) = 0;
    00182   virtual csPtr<iSoundHandle> LoadSound (const char *fname) = 0;
    00187   virtual csPtr<iSoundWrapper> LoadSound (const char *name,
    00188         const char *fname) = 0;
    00189
    00191   virtual csPtr<iSndSysData> LoadSoundSysData (const char *fname) = 0;
    00198   virtual csPtr<iSndSysStream> LoadSoundStream (const char *fname,
    00199         int mode3d) = 0;
    00208   virtual iSndSysWrapper* LoadSoundWrapper (const char *name,
    00209         const char *fname, int mode3d) = 0;
    00210
    00232   virtual csPtr<iLoaderStatus> ThreadedLoadMapFile (const char* filename,
    00233         iRegion* region = 0, bool curRegOnly = true,
    00234         bool checkDupes = false) = 0;
    00235
    00262   virtual bool LoadMapFile (const char* filename, bool clearEngine = true,
    00263         iRegion* region = 0, bool curRegOnly = true,
    00264         bool checkDupes = false, iStreamSource* ssource = 0) = 0;
    00265
    00292   virtual bool LoadMap (iDocumentNode* world_node, bool clearEngine = true,
    00293         iRegion* region = 0, bool curRegOnly = true,
    00294         bool checkDupes = false, iStreamSource* ssource = 0) = 0;
    00295
    00312   virtual bool LoadLibraryFile (const char* filename, iRegion* region = 0,
    00313         bool curRegOnly = true, bool checkDupes = false,
    00314         iStreamSource* ssource = 0) = 0;
    00315
    00332   virtual bool LoadLibrary (iDocumentNode* lib_node, iRegion* region = 0,
    00333         bool curRegOnly = true, bool checkDupes = false,
    00334         iStreamSource* ssource = 0) = 0;
    00335
    00341   virtual csPtr<iMeshFactoryWrapper> LoadMeshObjectFactory (
    00342         const char* fname, iStreamSource* ssource = 0) = 0;
    00349   virtual csPtr<iMeshWrapper> LoadMeshObject (const char* fname,
    00350         iStreamSource* ssource = 0) = 0;
    00351
    00391   virtual bool Load (const char* fname, iBase*& result, iRegion* region = 0,
    00392         bool curRegOnly = true, bool checkDupes = false,
    00393         iStreamSource* ssource = 0, const char* override_name = 0) = 0;
    00394
    00434   virtual bool Load (iDataBuffer* buffer, iBase*& result, iRegion* region = 0,
    00435         bool curRegOnly = true, bool checkDupes = false,
    00436         iStreamSource* ssource = 0, const char* override_name = 0) = 0;
    00437
    00476   virtual bool Load (iDocumentNode* node, iBase*& result, iRegion* region = 0,
    00477         bool curRegOnly = true, bool checkDupes = false,
    00478         iStreamSource* ssource = 0, const char* override_name = 0) = 0;
    00479
    00483   virtual bool LoadShader (const char* filename) = 0;
    00484 };
    00485
    00488 #endif // __CS_IMAP_PARSER_H__
    00489