Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

IrrlichtResourceProvider.cpp

Go to the documentation of this file.
00001 /************************************************************************
00002 filename:       IrrlichtResourceProvider.cpp
00003 created:        12/22/2004
00004 author:         Thomas Suter
00005 
00006 purpose:        Implements the Resource Provider common functionality
00007 *************************************************************************/
00008 /*************************************************************************
00009 Crazy Eddie's GUI System (http://www.cegui.org.uk)
00010 Copyright (C)2004 - 2005 Paul D Turner (paul@cegui.org.uk)
00011 
00012 This library is free software; you can redistribute it and/or
00013 modify it under the terms of the GNU Lesser General Public
00014 License as published by the Free Software Foundation; either
00015 version 2.1 of the License, or (at your option) any later version.
00016 
00017 This library is distributed in the hope that it will be useful,
00018 but WITHOUT ANY WARRANTY; without even the implied warranty of
00019 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00020 Lesser General Public License for more details.
00021 
00022 You should have received a copy of the GNU Lesser General Public
00023 License along with this library; if not, write to the Free Software
00024 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00025 *************************************************************************/
00026 #include "renderers/IrrlichtRenderer/IrrlichtResourceProvider.h"
00027 
00028 #include "CEGUIExceptions.h"
00029 
00030 //#include <xercesc/framework/MemBufInputSource.hpp>
00031 
00032 #include <IReadFile.h>
00033 
00034 // Start of CEGUI namespace section
00035 namespace CEGUI
00036 {
00037 
00038         IrrlichtResourceProvider::IrrlichtResourceProvider(irr::io::IFileSystem* fsys_) 
00039                 : ResourceProvider(), fsys(fsys_) 
00040         {
00041                 if(fsys!=0)fsys->grab();
00042         }
00043 
00044         IrrlichtResourceProvider::~IrrlichtResourceProvider(void) 
00045         {
00046                 if(fsys!=0)fsys->drop();
00047         }
00048 
00049         void IrrlichtResourceProvider::loadRawDataContainer(const String& filename, RawDataContainer& output, const String& resourceGroup)
00050         {
00051                 if(!fsys->existFile(filename.c_str()))
00052                 {
00053                         String sMsg=(utf8*)"IrrlichtResourceProvider::loadRawDataContainer - Filename supplied for loading must be valid";
00054                         sMsg+=(utf8*)" ["+filename+(utf8*)"]";
00055                         throw InvalidRequestException(sMsg);
00056                 }
00057                 else
00058                 {
00059                         irr::u8* input;
00060                         irr::u32 input_size;
00061                         irr::io::IReadFile* f=fsys->createAndOpenFile(filename.c_str());
00062                         input_size=f->getSize();
00063                         input= new irr::u8[input_size];
00064                         f->read(input,input_size);
00065 
00066                         output.setData(input);
00067                         output.setSize(input_size);
00068                 }
00069         }
00070 } // End of  CEGUI namespace section

Generated on Wed Feb 16 12:41:08 2005 for Crazy Eddies GUI System by  doxygen 1.3.9.1