/* * Author: Andrew Mann * * Copyright (C) 2004 PlaneShift Team (info@planeshift.it, * http://www.planeshift.it) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation (version 2 of the License) * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __PV_RESMGR_DOT_H__ #define __PV_RESMGR_DOT_H__ #include "iengine/engine.h" class PVMaterialTracker; /** A central location for all resource (materials, shaders, etc) related functionality */ class PVResourceManager { public: PVResourceManager(iObjectRegistry* obj_reg); ~PVResourceManager(); // Material functions int Material_AddAllMaterialsInEngine(); int Material_GetMaterialCount(); PVMaterialTracker *Material_GetMaterialTracker(int idx); int Material_FindByName(const char *name); bool LoadLibraryFile(const char *working_dir,const char *filename); protected: public: protected: iObjectRegistry *object_reg; csRef engine; csArray material_list; }; class PVMaterialTracker { public: PVMaterialTracker(csRef mat_wrapper); ~PVMaterialTracker(); public: csRef material_wrapper; }; #endif // #ifndef __PV_RESMGR_DOT_H__